Nodejs读取文件时相对路径的正确写法(使用fs模块)
在开发Nodejs中,我们往往最常用的模块就是fs核心模块(fs.readFile)来读取文件。代码如下:
但是运行之后,并没有按照想象中一样,读取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模块xml2js解析xml过程中遇到的坑
本文实例讲述了nodejs模块xml2js解析xml过程中遇到的坑.分享给大家供大家参考,具体如下: 在一个项目中,用到nodejs模块xml2js解析xml,xml的数据如下: <xml> <MsgId>6197906553041859764</MsgId> </xml> 用xml2js中的xml2js.parseString 方法解析,本来以为是一个json,但总是解析失败,把解析的结果log下后如下: { xml: { MsgId: [ '619790
-
在 Node.js 中使用原生 ES 模块方法解析
从版本 8.5.0 开始,Node.js 开始支持原生 ES 模块,可以通过命令行选项打开该功能.新功能很大程度上得归功于 Bradley Farias. 1.演示 这个示例的代码目录结构如下: esm-demo/ lib.mjs main.mjs lib.mjs: export function add(x, y) { return x + y; } main.mjs: import {add} from './lib.mjs'; console.log('Result: '+add(2, 3
-
NodeJS 实现手机短信验证模块阿里大于功能
1,NodeJS 安装阿里大于模块 切换到项目目录使用npm 安装阿里于模块 npm i node-alidayu --save 2,aliyu官网使用淘宝账户登录 登录阿里大于 https://doc.alidayu.com/doc2/index.htm 1登录后点击管理中心 2点击应用管理===>创建应用 3配置管理===>验证码====>里添加短信签名 4应用列表里===>操作一栏===>点击设置 记住 app key 和 APP sercret 5.后台代
-
Nodejs中使用captchapng模块生成图片验证码
Nodejs项目,在做图片验证码的时候遇到了难题.Nodejs没有图片库,以后会有,但是现在没有. 网络上搜索一圈,有几个解决方案: 1.采用第三方验证码程序,有的时候,项目可能不允许: 2.使用Java或者PHP生成图片,Nodejs调用,中间采用Redies共享: 这两种方式都不太理想,好在终于找到了可以支持Nodejs图片验证码的一个库,虽然只支持数字,但是也还不错.原理是使用Base64的图片编码方式. 这个库的Gighub地址是:https://github.com/GeorgeCha
-
深入学习nodejs中的async模块的使用方法
最近在学习nodejs,这两天学习了async模块这个地方知识点挺多的,所以,今天添加一点小笔记. async模块是为了解决嵌套金字塔,和异步流程控制而生.常用的方法介绍 npm 安装好async模块,然后引入就可以使用 var async = require('async'); 1. series(tasks,[callback]) 多个函数从上到下依次执行,相互之间没有数据交互 var task1 =function(callback){ console.log("task1");
-
nodejs入门教程六:express模块用法示例
本文实例讲述了nodejs入门教程之express模块用法.分享给大家供大家参考,具体如下: /** * Created by Dason on 2017/3/28. */ var express = require('express'); var morgan = require('morgan');//打印日志的中间件 //创建express 的实例 var app = express(); /** * 中间件: * Connect: Node.js的中间件框架 * 分层处理:每层实现一个功
-
Nodejs读取文件时相对路径的正确写法(使用fs模块)
在开发Nodejs中,我们往往最常用的模块就是fs核心模块(fs.readFile)来读取文件.代码如下: 但是运行之后,并没有按照想象中一样,读取test.html文件内容,这是一个bug,坑爹的玩意,解决办法: 其实由于运行环境的不同,以上的相对路径的写法导致最后读取的位置是不同的. 正确的写法应该是使用"path.join()"的方式实现:(__dirname表示当前文件的目录名) //require 表示引包,引包就是引用自己的一个特殊功能 var http = require
-
分析Python读取文件时的路径问题
Python在读取文件内容时的路径问题,值得深究一下.我想讨论的重点还是在绝对路径上面.在这之前我们先看一下 1:相对路径 这张图演示了在相对路径下寻找查找指定文件. open('相对路径演示'\'相对路径示例'.txt)打开的是相对当前运行的程序所在目录. 而我当前运行的程序相对位置在桌面. 所以直接print(lines) 可以看到这个结果 2:绝对路径. 绝对路径的查找方法就不演示了,相信每个人都会找到.但是我想讨论的是几个关于路径中的编码问题,相信这对初学者们有很大的帮助. 2.1:你
-
.Net Core读取文件时中文乱码问题的解决方法分享
目录 背景 问题 .NETFramework中的默认属性 .NETCore上的默认属性 解决办法 附.NetCore下读取配置文件中文乱码 总结 背景 今天在使用core web api上传txt文档的时候本来很顺利的,但是一测试发现读取的中文内容是乱码的,很是纳闷. 出于经验,立马把代码的Encoding.Default改成 Encoding.uft8, 发现还是不行.后面索性把上传的文件另存为下,特地选择带有bom的utf8选项. 但是发现还是乱码.郁闷. 问题 于是在本能的百度下,发现方法
-
PHP按行读取文件时删除换行符的3种方法
PHP按行读取文件 去掉换行符"\n": 第一种: 复制代码 代码如下: $content=str_replace("\n","",$content);echo $content; 或者: 复制代码 代码如下: $content=str_replace(array("\n","\r"),"",$content); 第二种: 复制代码 代码如下: $content=preg_replace
-
Java加载资源文件时的路径问题的解决办法
加载资源文件比较常用的有两种: 一.用ClassLoader,说到这里就不得不提一下ClassLoader的分类,java内置的ClassLoader主要有三种, 第一种是根类加载器(bootstrap class loader),用C++来编写,负责将一些关键的Java类,如java.lang.Object和其他一些运行时代码先加载进内存中. 所负责加载的包:BootStrp------>JRE/lib/rt.jar 第二种是扩展类加载器(ExtClassLoader),由java类编写,负责
-
完美解决go Fscanf 在读取文件时出现的问题
先要明白Fscanf的工作原理 Fscanf在遇到\n才结束 遇到\r时就会把\r替换成0 这就有个问题,要注意自己的文本换行符是什么,在Windows下就是\r\n,在Linux,Mac下就是\n,也就是说这里有个坑, 代码在Linux和Mac下读取数据文件是正常的,在Windows下就会遇到各种行末尾有个0,网上办法用什么替换啊,用什么自定义Scan函数啊,太麻烦了,直接使用自带IDE将打开的数据文件集换行符改成LF(Linux,Mac换行符)就行了 如下图Idea 文件右下角LF点击就可以
-
Shell脚本一次读取文件中一行的2种写法
写法一: 复制代码 代码如下: #!/bin/bash while read line do echo $line #这里可根据实际用途变化 done < urfile 写法二: 复制代码 代码如下: #!/bin/bash cat urfile | while read line do echo $line done 注意:以上代码中urfile 为被读取的文件 Shell读取文本文件 方法一:通过命令获取所需内容,传递给变量 复制代码 代码如下: var1=$(g
-
python中pandas读取csv文件时如何省去csv.reader()操作指定列步骤
优点: 方便,有专门支持读取csv文件的pd.read_csv()函数. 将csv转换成二维列表形式 支持通过列名查找特定列. 相比csv库,事半功倍 1.读取csv文件 import pandas as pd file="c:\data\test.csv" csvPD=pd.read_csv(file) df = pd.read_csv('data.csv', encoding='gbk') #指定编码 read_csv()方法参数介绍 filepath_or_buf
-
nodejs如何读取文件二进制 前端响应blob或base64显示图片
目录 读取文件二进制 前端响应blob或base64显示图片 nodejs读取文件 createReadStream 读取文件二进制 前端响应blob或base64显示图片 express 框架 nodejs var express = require('express') var app = express(); var fs = require('fs') var http = require('http').createServer(app); app.get('/send',async
-
node.js使用fs读取文件出错的解决方案
今天配接口,使用fs模块读取json出现了错误'no such file or directory',然后经查终于解决,特此记录. 使用nodejs的fs模块读取文件时习惯用相对路径,但是运行的时候出现了上述的错误,原因就是fs模块读取文件的相对路径是以启动server.js的位置为基准的,而不是以server.js文件的位置. 这就是这篇文章所要讲述的问题.并且nodejs官方推荐在使用fs模块读取文件时使用绝对路径,而不是相对路径. 但是写绝对路径又有些许麻烦,那该如何解决呢,参考以下代码就
随机推荐
- 九宫格的含义 横竖斜三个数相加都等于15
- mysql千万级数据大表该如何优化?
- Jquery在IE7下无法使用 $.ajax解决方法
- Struts2 $,#,%详解及实例代码
- Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
- .NET中获取Access新增记录Id怪现象解决方法
- 如何高效率去掉js数组中的重复项
- 【经验总结】编写JavaScript代码时应遵循的14条规律
- PHP把网页保存为word文件的三种方法
- Docker 命令教程(附中文解释)
- 自己动手写的jquery分页控件(非常简单实用)
- Debian 9系统下修改默认网卡为eth0的方法
- T-SQL中使用正则表达式函数
- jQuery控制iFrame(实例代码)
- JS实现Select的option上下移动的方法
- Android Studio启动报错Java 1.8 or later is required的解决方法
- 基于JAVA中使用Axis发布/调用Webservice的方法详解
- 详解Struts2标签遍历
- Android自定义View绘图实现拖影动画
- 解析在Direct2D中画Bezier曲线的实现方法