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 相关文章推荐
Ctrl+Enter提交内容信息
Jun 26 Javascript
javascript css styleFloat和cssFloat
Mar 15 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
May 10 Javascript
js模拟select下拉菜单控件的代码
May 08 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
Jun 07 Javascript
JavaScript eval() 函数介绍及应用示例
Jul 29 Javascript
Javascript中arguments和arguments.callee的区别浅析
Apr 24 Javascript
基于jquery实现表格无刷新分页
Jan 07 Javascript
javascript DIV实现跟随鼠标移动
Mar 19 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
Nov 18 Javascript
vue实现Excel文件的上传与下载功能的两种方式
Jun 28 Javascript
javascript设计模式之装饰者模式
Jan 30 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
php实现的漂亮分页方法
2014/04/17 PHP
浅谈COOKIE和SESSION区别
2015/07/19 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
浅谈Javascript 执行顺序
2013/12/18 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
js 颜色选择插件
2017/01/23 Javascript
BootStrap TreeView使用实例详解
2017/11/01 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
深入浅析vue组件间事件传递
2017/12/29 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
我就是这样学习Python中的列表
2019/06/02 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
Python时间序列缺失值的处理方法(日期缺失填充)
2019/08/11 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
《学会合作》教学反思
2014/04/12 职场文书
党性分析自查总结
2014/10/14 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
学习与创新自我评价
2015/03/09 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
法律服务所工作总结
2015/08/10 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang