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教程 安装express及配置app.js文件的详细步骤
May 11 NodeJs
Nodejs实战心得之eventproxy模块控制并发
Oct 27 NodeJs
你一定会收藏的Nodejs代码片段
Feb 04 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
实例分析nodejs模块xml2js解析xml过程中遇到的坑
Mar 18 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
手把手教你把nodejs部署到linux上跑出hello world
Jun 19 NodeJs
NodeJS自定义模块写法(详解)
Jun 27 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
Nodejs + sequelize 实现增删改查操作
Nov 07 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
PHP与SQL注入攻击[一]
2007/04/17 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
JS Replace()的高级使用方法介绍
2013/06/29 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
Python 实现一个计时器
2020/07/28 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
人力资源专业推荐信
2013/11/29 职场文书
公务员职业生涯规划书范文  
2014/01/19 职场文书
C++程序员求职信范文
2014/04/14 职场文书
给老婆道歉的话
2015/01/20 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
素质教育学习心得体会
2016/01/19 职场文书
修改MySQL的数据库引擎为INNODB的方法
2021/05/26 MySQL
浅谈MySQL user权限表
2021/06/18 MySQL
常用的Python代码调试工具总结
2021/06/23 Python