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 ...
随机推荐
- Hadoop伪分布式重启正确流程
既然是伪分布式,那就不可避免的设计到重启Hadoop服务或者重启Hadoop服务器的情况,正确的停止和重启是很有必要的. 首先是Hadoop服务的停止,使用 ./sbin/stop-all.sh脚本来 ...
- this全面解析<转>
先搞明白一个很重要的概念 —— this的值是在执行的时候才能确认,定义的时候不能确认! 为什么呢 —— 因为this是执行上下文环境的一部分,而执行上下文需要在代码执行之前确定,而不是定义的时候. ...
- Linux下安装配置启动RabbitMQ
Linux版本:Centos 7RabbitMQ依赖erlang所以需要先安装erlang以及他需要的环境 安装erlang http://www.erlang.org/downloads 拿最新的版 ...
- CentOS 7.x and RHEL 7.x Install qemu-kvm
ref: https://www.linuxtechi.com/install-kvm-hypervisor-on-centos-7-and-rhel-7/ https://www.th ...
- fiddler4自动生成jmeter脚本
接口.性能测试任务当遇到从浏览器或移动app自己抓包的情况出现时就变得巨苦逼了,苦在哪里?苦在需要通过抓包工具抓报文,需要通过抓包报文梳理业务逻辑.需要将梳理的逻辑编写成脚本.最最苦的情况是,自己抓包 ...
- django RBAC类
# -*- coding: utf-8 -*- ''' @author: Swain @contact: 624420781@qq.com @file: middlewares.py @time: 2 ...
- Android 热修复 Tinker platform 中的坑,以及详细步骤(二)
操作流程: 一.注册平台账号: http://www.tinkerpatch.com 二.查看操作文档: http://www.tinkerpatch.com/Docs/SDK 参考文档: https ...
- js - 执行上下文和作用域以及闭包
首先,咱们通常被"执行上下文","执行上下文环境","上下文环境","执行上下文栈"这些名词搞混.那我们一一来揭秘这些名 ...
- Mac 安装RN android开发环境
前言 前面介绍了MAC 安装,再来讲讲mac 安装 安卓的开发环境 首先貌似很多Mac自带安卓JDK ,你可以在终端上输入java -version 看是否已经有java开发环境. 如果没有java开 ...
- python类内置方法的再学习
对于__setitem__和__getitem__方法:其入参看来是固定的(__getitem__(self, item),__setitem__(self, key, value)),我们并不需要重 ...