[关闭]
@langlibaitiao 2017-04-13T17:56:47.000000Z 字数 1414 阅读 5215

node.js读取本地文件



1 __dirname 和 __filename的区别

__dirname: 当前所在的文件的路径

__filename: 当前所在的文件的全路径+当前的文件名

2 fs.readFile() 和 fs.readFileSync()读取文件

首先创建一个readFile文件夹,readFile文件夹下再创建一个info文件夹和一个getFile.js文件,然后info文件夹下创建info.js, infoSync.js, readFile.js文件,代码如下展示。

在readFile文件夹下打开cmd命令行窗口,输入命令 node getFile.js
就会执行readFile.js并读取info.js和infoSync.j两个文件。

2.1 info.js代码:

  1. console.log("我是异步读取内容");

2.2 infoSync.js代码:

  1. console.log("我是同步读取内容");

2.2 readFile.js代码:

  1. //引入fs模块,直接用名字的方式引入
  2. var fs = require('fs');
  3. //读文件的方法
  4. //第一个参数是路径
  5. //第二个参数使用utf8的编码格式
  6. //第三个参数是回调函数,回调函数中有两个参数
  7. //1. err 错误对象
  8. //2. data 是数据
  9. var readFile = function(){
  10. //异步写法
  11. fs.readFile(__dirname + '/info.js', "utf8", function(err, data){
  12. console.log(data);
  13. });
  14. //同步的写法 比异步的多写一个Sync,返回的是文件的内容
  15. var dataSync = fs.readFileSync(__dirname + '/infoSync.js', "utf8");
  16. console.log(dataSync);
  17. }
  18. module.exports = readfile;

2.4 getFile.js代码:

  1. //加载readFile.js文件
  2. var readFile = require('./info/readFile.js');
  3. readFile();

3. 同步读取与异步读取的区别

3.1 代码演示

  1. console.log("读取开始");
  2. //引入fs模块,直接用名字的方式引入
  3. var fs = require('fs');
  4. fs.readFile('./info.js', "utf8", function(err, data){
  5. //抛出错误
  6. if (err) throw err;
  7. //源码分析
  8. //1 err存在,若不抛出err,data是undefined
  9. //2 data若存在,err为num
  10. console.log(data);
  11. });
  12. //同步的写法 比异步的多写一个Sync,返回的是文件的内容
  13. var dataSync = fs.readFileSync('./infoSync.js', "utf8")
  14. //如果出现异常(比如路径错误),就不会执行返回文件内容这步操作
  15. console.log(dataSync);
  16. console.log("读取结束");

3.2 异步读取下结果:

读取开始
读取结束
读取的info.js文件内容

3.3 同步读取下结果:

读取开始
读取的info.js文件内容
读取结束


友情链接[nodejs官方文档]

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注