nodejs file - yaokun123/php-wiki GitHub Wiki

Nodejs文件操作

我们知道,js在浏览器端由于安全问题(服务器可以直接向磁盘写文件)没有提供读写文件的API 但是在服务端,必须要有这样的API,使用到的模块var fs = require('fs')

一、写文件fs.writeFile(File,data[,option],callback);

参数1:要写入的文件路径,必填。
参数2:要写入的数据,必填。
参数3:写入文件时的选项,比如:文件编码,选填。
参数4:文件写入完毕后的回调函数,必填。

写文件注意:

该操作采用异步执行

如果文件已经存在则替换调

默认写入的文件编码是utf-8

回调函数有一个参数:err,表示在写入文件操作过程中是否出错了。 如果出错了err != null 否则 err === null

二、读文件:fs.readFile(file[,options],callback)

参数1:要读取的文件路径,必填。
参数2:读取文件时的选项,比如文件编码。选填。
参数3:文件读取完毕后的回调函数,必填。

读文件注意:

该操作采用异步执行

回调函数有两个参数,分别是err和data

如果读取文件时候没有指定编码,那么返回的将是原生的二进制数据。如果指定了编码 那么会根据指定的编码返回对应的字符串数据。

三、__dirname 和 __filename获取正在执行的文件的路径

fs.readFile('./hello.txt')

//此处的./ 相对路径,相对的是执行 node 命令的路径
//而不是相对于正在执行的这个 js 文件来查找 hello.txt

__dirname:表示,当前正在执行的 js 文件所在的目录
__filename:表示,当前正在执行的 js 文件的完整路径

注意:__dirname和__filename并不是全局的,是本地的

四、通过path模块进行路径拼接

第一种拼接方法:
var filename = __dirname + '/hello.txt';//但是这样写不好,建议使用第二种

第二种拼接方法:
var path = require('path');//加载path模块
path.join([...paths]);