Nodejs读取文件时相对路径的正确写法(使用fs模块)


Posted in NodeJs onApril 27, 2017

在开发Nodejs中,我们往往最常用的模块就是fs核心模块(fs.readFile)来读取文件。代码如下:

Nodejs读取文件时相对路径的正确写法(使用fs模块)

但是运行之后,并没有按照想象中一样,读取test.html文件内容,这是一个bug,坑爹的玩意,解决办法:

其实由于运行环境的不同,以上的相对路径的写法导致最后读取的位置是不同的。

正确的写法应该是使用"path.join()"的方式实现:(__dirname表示当前文件的目录名)

//require 表示引包,引包就是引用自己的一个特殊功能
var http = require("http");
var path = require("path");
var fs = require("fs");
//创建服务器,参数是一个回调函数,表示如果有事件进来,要做什么
var server = http.createServer(function (req,res) {
  fs.readFile(path.join(__dirname, "./test.html"),function (err,data) {
    res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
    res.end(data);
  });
});

//运行服务器 监听2000端口 端口可以任意修改
server.listen(2000,"127.0.0.1");

运行效果如下:

Nodejs读取文件时相对路径的正确写法(使用fs模块)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

NodeJs 相关文章推荐
轻松创建nodejs服务器(5):事件处理程序
Dec 18 NodeJs
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
Nodejs学习笔记之Stream模块
Jan 13 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
Nodejs如何复制文件
Mar 09 NodeJs
使用nodejs下载风景壁纸
Feb 05 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
Nodejs libuv运行原理详解
Aug 21 NodeJs
详解nodejs express下使用redis管理session
Apr 24 #NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 #NodeJs
Nodejs进阶:express+session实现简易登录身份认证
Apr 24 #NodeJs
nodejs入门教程五:连接数据库的方法分析
Apr 24 #NodeJs
nodejs入门教程四:URL相关模块用法分析
Apr 24 #NodeJs
nodejs入门教程三:调用内部和外部方法示例
Apr 24 #NodeJs
nodejs入门教程二:创建一个简单应用示例
Apr 24 #NodeJs
You might like
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
php生成RSS订阅的方法
2015/02/13 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
javascript JSON操作入门实例
2010/04/16 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
Python函数中不定长参数的写法
2019/02/13 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
python中JWT用户认证的实现
2020/05/18 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
上海微创软件面试题
2012/06/14 面试题
心得体会范文
2014/01/04 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
预备党员综合考察材料
2014/05/31 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
新闻通讯稿范文
2015/07/22 职场文书