文件模块

Node.js作为文件服务器

Node.js 的文件系统模块允许你调用计算机上的文件系统,来操作文件。

我们使用 require 函数来引入文件系统模块。

  1. var fs = require('fs')

文件系统的常用用法有:

  • 读取文件
  • 创建文件
  • 更新文件
  • 删除文件
  • 重命名文件

读取文件

可以使用 fs.readFile() 方法来操作电脑上的文件

假设我们有以下的 HTML 文件(和 Node.js 文件置于同一目录下)

  1. <!--demofile1.html-->
  2.  
  3. <html>
  4. <body>
  5. <h1>My Header</h1>
  6. <p>My paragraph.</p>
  7. </body>
  8. </html>

创建一个读取该 html 文件的 Node.js 文件,并且返回读取的内容。

  1. var http = require('http');
  2. var fs = require('fs');
  3.  
  4. http.createServer(function (req, res) {
  5. fs.readFile('demofile1.html', function(err, data) {
  6. res.writeHead(200, {'Content-Type': 'text/html'});
  7. res.write(data);
  8. res.end();
  9. });
  10. }).listen(8080);

保存上述代码到 demo_readfile.js ,并执行。

  1. C:\Users\Your Name>node demo_readfile.js

访问 http://localhost:8080 ,将会看到和例子一样的结果。

创建文件

创建文件,有以下的方法可以使用:

  • fs.appendFile()
  • fs.open()
  • fs.writeFile()

fs.appendFile() 方法可以往文件添加指定的内容,如果文件不存在,将会被创建。

  1. // 用fs.appendFile()来创建文件
  2. var fs = require('fs');
  3.  
  4. fs.appendFile('mynewfile1.txt', 'Hello content!', function (err) {
  5. if (err) throw err;
  6. console.log('Saved!');
  7. });

fs.open() 方法的第二个参数 flag ,如果取值为 w 的话,也就是 writing ,表示打开该文件是为了写入。如果该文件不存在,将会创建一个空文件。

  1. var fs = require('fs');
  2.  
  3. fs.open('mynewfile2.txt', 'w', function (err, file) {
  4. if (err) throw err;
  5. console.log('Saved!');
  6. });

fs.writeFile() 方法可以替换已存在文件的内容,如果该文件不存在,一个新文件将会被创建,并且包含了写入的内容。

  1. var fs = require('fs');
  2.  
  3. fs.writeFile('mynewfile3.txt', 'Hello content!', function (err) {
  4. if (err) throw err;
  5. console.log('Saved!');
  6. });

更新文件

可以调用以下方法来更新文件:

  • fs.appendFile()
  • fs.writeFile()

fs.appendFile() 方法可以往文件的末尾添加指定的内容:

  1. // 将"this is my text."这句话添加到文件"mynewfile1.txt"的结尾
  2.  
  3. var fs = require('fs');
  4.  
  5. fs.appendFile('mynewfile1.txt', ' This is my text.', function (err) {
  6. if (err) throw err;
  7. console.log('Updated!');
  8. });

fs.writeFile() 方法可以替换文件中的内容:

  1. // 替换"mynewfile3.txt"的内容
  2.  
  3. var fs = require('fs');
  4.  
  5. fs.writeFile('mynewfile3.txt', 'This is my text', function (err) {
  6. if (err) throw err;
  7. console.log('Replaced!');
  8. });

删除文件

可以调用 fs.unlink() 来删除指定的文件:

  1. // 删除"mynewfile2.txt"
  2.  
  3. var fs = require('fs');
  4.  
  5. fs.unlink('mynewfile2.txt', function (err) {
  6. if (err) throw err;
  7. console.log('File deleted!');
  8. });

重命名文件

可以调用 fs.rename() 方法来重命名文件:

  1. // 将 "mynewfile1.txt" 重命名为 "myrenamedfile.txt"
  2.  
  3. var fs = require('fs');
  4.  
  5. fs.rename('mynewfile1.txt', 'myrenamedfile.txt', function (err) {
  6. if (err) throw err;
  7. console.log('File Renamed!');
  8. });

下一步

订阅更新,获取更多学习资料,请关注我们的 微信公众号

../_images/wechat-mp-qrcode.png小菜学编程

微信打赏