在 Node.js 中,文件读写操作主要通过 fs
模块来实现。以下是一些常用的文件读写操作示例:
const fs = require('fs');
// 异步读取文件
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error('Error reading file:', err);
return;
}
console.log('File content:', data);
});
在上面的示例中,fs.readFile
方法异步读取 example.txt
文件的内容,并通过回调函数处理读取结果。
const fs = require('fs');
// 异步写入文件
fs.writeFile('output.txt', 'Hello, Node.js!', (err) => {
if (err) {
console.error('Error writing file:', err);
return;
}
console.log('File has been saved!');
});
这里,fs.writeFile
方法将字符串 Hello, Node.js!
写入 output.txt
文件。如果文件不存在,会自动创建。
const fs = require('fs');
// 追加内容到文件
fs.appendFile('output.txt', '\nThis is an appended line.', (err) => {
if (err) {
console.error('Error appending to file:', err);
return;
}
console.log('Content has been appended!');
});
fs.appendFile
方法用于向文件中追加内容,而不是覆盖文件的现有内容。
const fs = require('fs');
try {
const data = fs.readFileSync('example.txt', 'utf8');
console.log('File content:', data);
} catch (err) {
console.error('Error reading file:', err);
}
try {
fs.writeFileSync('output.txt', 'Hello, Node.js!');
console.log('File has been saved!');
} catch (err) {
console.error('Error writing file:', err);
}
同步方法 fs.readFileSync
和 fs.writeFileSync
会阻塞代码的执行,直到操作完成。
Node.js 提供了 http
模块,使用它可以非常方便地创建一个简单的 HTTP 服务器。
const http = require('http');
// 创建服务器
const server = http.createServer((req, res) => {
// 设置响应头
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
// 发送响应内容
res.end('Hello, World!\n');
});
// 服务器监听端口 3000
server.listen(3000, () => {
console.log('Server running at http://127.0.0.1:3000/');
});
在这个例子中,http.createServer
方法用于创建一个 HTTP 服务器,该服务器在接收到请求时返回一个 "Hello, World!" 消息。
const http = require('http');
const server = http.createServer((req, res) => {
if (req.url === '/') {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Welcome to the homepage!\n');
} else if (req.url === '/about') {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('This is the about page.\n');
} else {
res.statusCode = 404;
res.setHeader('Content-Type', 'text/plain');
res.end('Page not found!\n');
}
});
server.listen(3000, () => {
console.log('Server running at http://127.0.0.1:3000/');
});
在这个示例中,服务器根据请求的路径(req.url
)返回不同的响应内容。 /
路径返回主页内容,/about
路径返回关于页面内容,其他路径返回 404 错误。
通过掌握文件读写和创建 HTTP 服务器的基础知识,你可以开始构建简单的 Node.js 应用程序。文件读写是处理文件系统操作的核心,而 HTTP 服务器则是构建网络服务的基础。通过这些基本功能的组合,Node.js 可以轻松实现从简单的工具到复杂的 Web 应用程序。