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 相关文章推荐
javascript 有趣而诡异的数组
Apr 06 Javascript
JavaScript转换农历类实现及调用方法
Jan 27 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
Mar 04 Javascript
js实现文本框支持加减运算的方法
Aug 19 Javascript
springMVC结合AjaxForm上传文件
Jul 12 Javascript
jQuery多文件异步上传带进度条实例代码
Aug 16 Javascript
Vue实现PopupWindow组件详解
Apr 28 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
Vuejs监听vuex中值的变化的方法示例
Dec 02 Javascript
Node绑定全局TraceID的实现方法
Nov 14 Javascript
Vue开发中遇到的跨域问题及解决方法
Feb 11 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使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
javascript delete 使用示例代码
2010/03/29 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python检查指定文件是否存在的方法
2015/07/06 Python
浅谈Python中的私有变量
2018/02/28 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
python简易远程控制单线程版
2018/06/20 Python
Python简单实现区域生长方式
2020/01/16 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
绝对经典成功的大学生推荐信
2013/11/08 职场文书
给客户的道歉信
2014/01/13 职场文书
十一酒店活动方案
2014/02/20 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
会计电算化专业求职信
2014/06/10 职场文书
爱岗敬业事迹材料
2014/12/24 职场文书
检讨书模板大全
2015/05/07 职场文书
傲慢与偏见电影观后感
2015/06/10 职场文书
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js