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 相关文章推荐
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
Nov 27 Javascript
javascript获取URL参数与参数值的示例代码
Dec 20 Javascript
JS实现距离上次刷新已过多少秒示例
May 23 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
Jan 27 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
Dec 31 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
Dec 15 Javascript
JavaScript创建对象的四种常用模式实例分析
Jan 11 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
Jun 18 jQuery
layui数据表格跨行自动合并的例子
Sep 02 Javascript
js实现炫酷光感效果
Sep 05 Javascript
使用JavaScript实现贪吃蛇游戏
Sep 29 Javascript
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 Vue.js
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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
关于php连接mssql:pdo odbc sql server
2011/07/20 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
微信小程序版翻牌小游戏
2018/01/26 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
django2 快速安装指南分享
2018/01/05 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
python编写微信公众号首图思路详解
2019/12/13 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
物流管理专业大学生自荐信
2013/10/04 职场文书
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
个人自荐材料
2014/05/23 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
小学生读书笔记
2015/07/01 职场文书
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
Android实现图片九宫格
2022/06/28 Java/Android