以下是 Node.js中的http模块和fs模块
1. http
模块
用于创建和处理 HTTP 服务器和客户端,可用于构建 Web 应用程序。
const http = require('http');
http
模块是 Node.js 中的核心模块之一,用于创建和处理 HTTP 服务器和客户端。通过 http
模块,我们可以构建 Web 应用程序、发送 HTTP 请求以及处理 HTTP 响应。
创建 HTTP 服务器
下面是一个简单的例子,演示了如何使用 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!'); }); // 监听端口 const port = 3000; server.listen(port, () => { console.log(`Server running at http://localhost:${port}/`); });
上述代码中,我们使用 createServer
方法创建了一个 HTTP 服务器,并传入一个回调函数作为请求处理程序。在这个简单的例子中,我们对每个请求都返回了一个 HTTP 响应,其中状态码设置为 200,内容类型设置为纯文本,并发送了 “Hello, World!” 字符串。
处理 HTTP 请求
在创建的 HTTP 服务器中,请求的信息可以通过回调函数的参数来获取。例如,req
对象表示客户端的请求,我们可以从中获取请求方法、URL、头部信息等。以下是一个示例:
// 创建服务器 const server = http.createServer((req, res) => { // 获取请求方法和URL const method = req.method; const url = req.url; // 获取所有头部信息 const headers = req.headers; // 处理其他逻辑 // ... });
通过 req
对象,我们可以访问请求的方法(GET、POST 等)、URL(例如 /users
)、头部信息(如 Content-Type
)等。
发送 HTTP 请求
除了创建服务器,http
模块还提供方法来发送 HTTP 请求。以下是一个简单的例子:
const http = require('http'); // 设置请求选项 const options = { hostname: 'api.example.com', port: 80, path: '/users', method: 'GET' }; // 发送请求 const req = http.request(options, (res) => { console.log(`Response status code: ${res.statusCode}`); // 处理响应数据 res.on('data', (chunk) => { console.log(`Received data: ${chunk}`); }); }); // 处理请求错误 req.on('error', (err) => { console.error(`Request error: ${err.message}`); }); // 结束请求 req.end();
在上述代码中,我们通过 http.request
方法发送了一个 GET 请求到 api.example.com/users
,并监听响应的事件。当收到响应数据时,我们可以通过监听 data
事件获取数据块,并在请求结束时调用 end
方法。
总结:http
模块是 Node.js 中用于创建和处理 HTTP 服务器和客户端的核心模块。我们可以使用它来创建 HTTP 服务器,处理客户端请求,并发送 HTTP 请求到其他服务器。通过 req
和 res
对象,我们可以获取请求和响应的信息,进行相应的处理。
2. fs
模块
用于与文件系统进行交互,包括读取、写入、删除文件等操作。
const fs = require('fs');
fs
模块是 Node.js 中的核心模块之一,用于与文件系统进行交互,包括读取文件、写入文件、删除文件、创建目录等操作。通过 fs
模块,我们可以对文件和目录进行各种操作。
读取文件
要读取文件内容,可以使用 fs.readFile
方法。以下是一个简单的示例:
const fs = require('fs'); // 读取文件 fs.readFile('file.txt', 'utf8', (err, data) => { if (err) { console.error(err); return; } console.log(data); });
在上述代码中,我们使用 fs.readFile
方法读取名为 file.txt
的文件。第一个参数是文件路径,第二个参数是编码格式(这里使用 'utf8'
),第三个参数是回调函数,在读取完成后被调用。如果读取过程中出现错误,错误信息将会传递给回调函数的第一个参数 err
;否则,文件的内容将会传递给回调函数的第二个参数 data
。
写入文件
要写入文件内容,可以使用 fs.writeFile
方法。以下是一个简单的示例:
const fs = require('fs'); // 写入文件 fs.writeFile('file.txt', 'Hello, World!', (err) => { if (err) { console.error(err); return; } console.log('File written successfully.'); });
在上述代码中,我们使用 fs.writeFile
方法向名为 file.txt
的文件写入内容。第一个参数是文件路径,第二个参数是要写入的内容,第三个参数是回调函数,在写入完成后被调用。如果写入过程中出现错误,错误信息将会传递给回调函数的参数 err
。
删除文件
要删除文件,可以使用 fs.unlink
方法。以下是一个简单的示例:
const fs = require('fs'); // 删除文件 fs.unlink('file.txt', (err) => { if (err) { console.error(err); return; } console.log('File deleted successfully.'); });
在上述代码中,我们使用 fs.unlink
方法删除名为 file.txt
的文件。第一个参数是文件路径,第二个参数是回调函数,在删除完成后被调用。如果删除过程中出现错误,错误信息将会传递给回调函数的参数 err
。
创建目录
要创建目录,可以使用 fs.mkdir
方法。以下是一个简单的示例:
const fs = require('fs'); // 创建目录 fs.mkdir('mydir', (err) => { if (err) { console.error(err); return; } console.log('Directory created successfully.'); });
在上述代码中,我们使用 fs.mkdir
方法创建名为 mydir
的目录。第一个参数是目录的路径,第二个参数是回调函数,在创建完成后被调用。如果创建过程中出现错误,错误信息将会传递给回调函数的参数 err
。
总结:fs
模块是 Node.js 中用于与文件系统进行交互的核心模块。通过 fs
模块,我们可以读取、写入、删除文件,创建目录等操作。使用对应的方法,我们可以轻松进行文件系统的各种操作。