Node.js中的require.resolve方法使用简介


Posted in Javascript onApril 23, 2017

前言

网上关于NodeJs的论述很多,此处不多说。个人认为,NodeJs的编程思想和客户端Javascript保持了一种理念,没有什么变化,只是增加了“require()”函数,因此只要学好require函数,剩下的问题就是如何更好的使用API了。本文则主要介绍了Node.js中的require.resolve方法,下面来看看详细介绍吧。

简单的说,在 Node.js 中使用 fs 读取文件的时候,经常碰到要拼一个文件的绝对路径的问题 (fs 处理相对路径均以进程执行目录为准)。

之前一直的方法都是,使用 path 模块以及 __dirname 变量 。

代码如下所示:

fs.readFileSync(path.join(__dirname, './assets/some-file.txt'));

使用 require.resolve 可以简化这一过程

示例代码:

fs.readFileSync(require.resolve('./assets/some-file.txt'));

此外, require.resolve 还会在拼接好路径之后检查该路径是否存在, 如果 resolve 的目标路径不存在, 就会抛出 Cannot find module './some-file.txt' 的异常. 省略了一道检查文件是否存在的工序 (fs.exists).

这个报错并不会加重你的检查负担, 毕竟使用 fs 去操作文件时, 如果发现文件不存在也会抛出异常. 反之, 通过 require.resovle 可以在提前在文件中作为常量定义, 那么在应用启动时就可以抛异常, 而不是等到具体操作文件的时候才抛异常.

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
IE6下CSS图片缓存问题解决方法
Dec 09 Javascript
基于jQuery的倒计时插件代码
May 07 Javascript
IE事件对象(The Internet Explorer Event Object)
Jun 27 Javascript
jQuery实现的多选框多级联动插件
May 02 Javascript
js使用for循环查询数组中是否存在某个值
Aug 12 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
Jan 13 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
Jun 13 Javascript
微信小程序日期选择器实例代码
Jul 18 Javascript
js核心基础之构造函数constructor用法实例分析
May 11 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 Javascript
vue模块移动组件的实现示例
May 20 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
Apr 22 #Javascript
vue拦截器Vue.http.interceptors.push使用详解
Apr 22 #Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
Apr 22 #Javascript
Vue.use源码分析
Apr 22 #Javascript
uploader秒传图片到服务器完整代码
Apr 22 #Javascript
Node.js中看JavaScript的引用
Apr 22 #Javascript
详解Angular中的自定义服务Service、Provider以及Factory
Apr 22 #Javascript
You might like
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
cmd下运行php脚本
2008/11/25 PHP
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
PHP反向代理类代码
2014/08/15 PHP
PHP实现合并discuz用户
2015/08/05 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
Python3运算符常见用法分析
2020/02/14 Python
python如何求100以内的素数
2020/05/27 Python
keras打印loss对权重的导数方式
2020/06/10 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
日本无添加化妆品:HABA
2016/08/18 全球购物
中职生自荐信
2013/10/13 职场文书
个人自我鉴定
2013/11/07 职场文书
优秀食品类广告词
2014/03/19 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
环境保护建议书
2014/08/26 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
家长通知书家长意见
2014/12/30 职场文书
浅谈Java父子类加载顺序
2021/08/04 Java/Android
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python