Node.js读取文件相对路径写法注意
首先看一下文件的存放结构:

我们现在希望在上面标记的JS文件里面读取html里面的内容,我们的代码如下:
var fs=require("fs");
fs.readFile('test.html',function (err,data) {
if(err){
console.log(err);
}else{
console.log(data);//打印出的是16进制的内容<Buffer e8 bf 99 e6 98 af e8 bf bd e5 8a a0 e5 86 99 e5 85 a5 61 70 70 65 6e 64 46 69 6c 65 54 65 73 74 2e 74 78 74 e6 96 87 e4 bb b6 e7 9a 84 e5 86 85 e5 ae ... >
console.log(data.toString());//打印出的是我们正常的文本信息
}
})
最后我们发现,会报读取不到test.html文件的错误(当然,有时候又可以读取到,也就是说什么这种代码书写方式不稳定)
此时我们应该使用path.join(_dirname,"文件路径");//__dirname表示当前JS文件的目录名,后面的文件路径就是相对“__dirname”而定
__dirname 总是指向被执行 js 文件的绝对路径,也就是说你在E:\web\test\abc.js中写__dirname那么路径就是E:\web\test
var fs=require("fs");
var path=require("path");
fs.readFile(path.join(__dirname,'test.html'),function (err,data) {
if(err){
console.log(err);
}else{
console.log(data);//打印出的是16进制的内容<Buffer e8 bf 99 e6 98 af e8 bf bd e5 8a a0 e5 86 99 e5 85 a5 61 70 70 65 6e 64 46 69 6c 65 54 65 73 74 2e 74 78 74 e6 96 87 e4 bb b6 e7 9a 84 e5 86 85 e5 ae ... >
console.log(data.toString());//打印出的是我们正常的文本信息
}
})
Node.js读取文件相对路径写法注意的更多相关文章
- Node.js读取文件内容
原文链接:http://blog.csdn.net/zk437092645/article/details/9231787 Node.js读取文件内容包括同步和异步两种方式. 1.同步读取,调用的是r ...
- node.js 读取文件--createReadStream
createReadStream 是fs模块里面读流的一个方法 这个方法基于fs模块的,所以我们先要引进fs模块 let fs=require("fs"); createReadS ...
- Node.js读取文件内容并返回值(非异步)
主要解决的问题的,以最近VsCode插件开发为例,每次请求都需要token,而vscode并不支持cookie这样的存储,所以就采用粗暴点办法,存到某个用户目录下并读取. 源码如下: var fs=r ...
- node.js 读取文件
一般用法 var path = require("path"); var fs = require("fs"); //let filePath = path.j ...
- Node.js写文件的三种方法
Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...
- 前端使用js读取文件
最近同时问我js能不能读取本地文件: 想起以前看到js读取本地文件的文章,然后自己写了个demo. ps:这有点想Java的IO流,但是又有差别. 首先我们定义一个input标签type=" ...
- Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结
上一篇 | 下一篇 Spring MVC程序中得到静态资源文件css,js,图片 文件的路径 问题总结 作者:轻舞肥羊 日期:2012-11-26 http://www.blogjava.net/fi ...
- 用node.js读写文件
node.js没有二进制数据类型,却提供了类似字节数组的“流“数据类型,着一种数据类型在文件系统模块中频频出现 node.js打开文件 fs = require('fs'); console.log( ...
- jq常用事件(on,blur,focus,change),js/jq等待图片(页面)加载完毕事件,js读取文件
jq常用事件(on,blur,focus,change) // 方法一(推荐) $('.box').on( "click",function() {} ) $('.box').on ...
随机推荐
- 谈谈你对 mysql 引擎中的 MyISAM与InnoDB的区别理解?
InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISA ...
- 清北学堂提高组突破营游记day3
讲课人更换成dms. 真的今天快把我们逼疯了.. 今天主攻数据结构, 基本上看完我博客能理解个大概把, 1.LCA 安利之前个人博客链接.之前自己学过QWQ. 2.st表.同上. 3.字符串哈希.同上 ...
- shell_hive
(1)获取参数:从shell文件传来参数,调用:$1,$2,$3 load_date=$1 clearn_date=`date -d"$2 day ago $load_date" ...
- mongdb的优势和不足
l 面向文档的数据库. l 一个介于关系型数据库和非关系型数据库之间的产品,是非关系系数据库中功能最丰富,最像关系型数据库的. l 特征是模式自由,schema-free.无需定义表结构. l ...
- GlusterFS 分布式文件系统
简介 官方文档:https://docs.gluster.org/en/latest/Quick-Start-Guide/Architecture/ Glusterfs是一个开源的分布式文件系统,是S ...
- No module named 'winrandom'。
问题:在windows的python3使用PyCrypto出现ImportError: No module named 'winrandom'错误处理:修改python3安装目录下的 lib/Cry ...
- SpringMVC优雅的获取HttpSevletRequest及HttpServletResponse简录
https://cloud.tencent.com/developer/article/1403947 通常情况下,SpringMVC可以通过入参的方式绑定HttpServletRequest和Htt ...
- k8s管理pod资源对象(下)
一.标签与标签选择器 1.标签是k8s极具特色的功能之一,它能够附加于k8s的任何资源对象之上.简单来说,标签就是键值类型的数据,它们可于资源创建时直接指定,也可随时按需添加于活动对象中,而后即可由标 ...
- C#中无边框窗体移动或拖控件移动窗体
[DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("use ...
- 网络编程简介(OSI七层协议,TCP协议原理,三次握手与四次挥手)
目录 网络编程 软件开发架构 C/S架构 B/S架构 网络编程的发展史 互联网协议 1.物理连接层 2.数据链路层 3.网络层 4.传输层 5.应用层 三次握手四次挥手 三次握手建链接 数据传输 四次 ...