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 相关文章推荐
关于JS判断图片是否加载完成且获取图片宽度的方法
Apr 09 Javascript
js解决弹窗问题实现班级跳转DIV示例
Jan 06 Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
Nov 29 Javascript
jQuery插件imgPreviewQs实现上传图片预览
Jan 15 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
Apr 29 Javascript
详解浏览器渲染页面过程
Feb 09 Javascript
基于JavaScript实现多级菜单效果
Jul 25 Javascript
Vue.js弹出模态框组件开发的示例代码
Jul 26 Javascript
微信小程序实现图片上传放大预览删除代码
Jun 28 Javascript
Vue开发中遇到的跨域问题及解决方法
Feb 11 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
Aug 06 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的配置文件php.ini
2006/10/09 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
python使用matplotlib绘制折线图教程
2017/02/08 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python unittest实现api自动化测试
2018/04/04 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
python实现按日期归档文件
2021/01/30 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
物业管理大学生个人的自我评价
2013/10/10 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
mysql全面解析json/数组
2022/07/07 MySQL