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 相关文章推荐
IE JS编程需注意的内存释放问题
Jun 23 Javascript
JS运行耗时操作的延时显示方法
Nov 19 Javascript
JS应用正则表达式转换大小写示例
Sep 18 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
Aug 26 Javascript
Vue.js每天必学之过滤器与自定义过滤器
Sep 07 Javascript
Javascript中作用域的详细介绍
Oct 06 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
Nov 09 Javascript
jQuery轻松实现无缝轮播效果
Mar 22 jQuery
jquery 动态遍历select 赋值的实例
Sep 12 jQuery
element-ui 时间选择器限制范围的实现(随动)
Jan 09 Javascript
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
js中的this的指向问题详解
Aug 29 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 删除无限级目录与文件代码共享
2008/11/22 PHP
PHP $_FILES函数详解
2011/03/09 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
Python中的列表知识点汇总
2015/04/14 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
详解python中的index函数用法
2019/08/06 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
24个canvas基础知识小结
2014/12/17 HTML / CSS
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
促销活动方案模板
2014/02/24 职场文书
消防工作实施方案
2014/06/09 职场文书
珍惜资源的建议书
2014/08/26 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
电影雷锋观后感
2015/06/10 职场文书
2019暑假学生安全口号
2019/06/27 职场文书
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL