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代码
Mar 11 Javascript
jquery each()源代码
Feb 14 Javascript
javascript:json数据的页面绑定示例代码
Jan 26 Javascript
JavaScript 学习笔记之基础中的基础
Jan 13 Javascript
JS实现仿FLASH效果的竖排导航代码
Sep 15 Javascript
jQuery Validate表单验证入门学习
Dec 18 Javascript
angular使用post、get向后台传参的问题实例
May 27 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
Jun 22 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
jQuery实现动态添加和删除input框实例代码
Mar 26 jQuery
element表格翻页第2页从1开始编号(后端从0开始分页)
Dec 10 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
Dec 01 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
php 无限极分类
2008/03/27 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
Convert Seconds To Hours
2007/06/16 Javascript
js继承 Base类的源码解析
2008/12/30 Javascript
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
jquery 弹出层实现代码
2009/10/30 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
python实现文件的分割与合并
2019/08/29 Python
python文字转语音实现过程解析
2019/11/12 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
什么是唯一索引
2015/07/05 面试题
领导检查欢迎词
2014/01/14 职场文书
七年级英语教学反思
2014/01/15 职场文书
幼儿园庆六一活动方案
2014/03/06 职场文书
副总经理岗位职责
2014/03/16 职场文书
主要领导对照检查材料
2014/08/26 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
财务总监岗位职责
2015/02/03 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python