使用Node.js来回发送文件是一种常见的网络通信操作,可以通过以下步骤实现:
const fs = require('fs');
const http = require('http');
const server = http.createServer((req, res) => {
// 处理请求
});
const server = http.createServer((req, res) => {
if (req.url === '/upload' && req.method === 'POST') {
// 处理文件上传
} else if (req.url === '/download' && req.method === 'GET') {
// 处理文件下载
} else {
// 处理其他请求
}
});
const server = http.createServer((req, res) => {
if (req.url === '/upload' && req.method === 'POST') {
const fileStream = fs.createWriteStream('uploaded_file.txt');
req.pipe(fileStream);
fileStream.on('finish', () => {
res.statusCode = 200;
res.end('File uploaded successfully');
});
} else {
// 处理其他请求
}
});
在上述代码中,我们创建了一个可写流fileStream
,将请求的数据流通过req.pipe()
方法传输到该可写流中,最后在finish
事件中返回上传成功的响应。
const server = http.createServer((req, res) => {
if (req.url === '/download' && req.method === 'GET') {
const fileStream = fs.createReadStream('uploaded_file.txt');
fileStream.pipe(res);
fileStream.on('error', (err) => {
res.statusCode = 404;
res.end('File not found');
});
} else {
// 处理其他请求
}
});
在上述代码中,我们创建了一个可读流fileStream
,将文件内容通过fileStream.pipe()
方法传输到响应流res
中,同时在error
事件中处理文件未找到的情况。
通过以上步骤,我们可以实现使用Node.js来回发送文件的功能。在实际应用中,可以根据具体需求进行进一步的优化和扩展,例如添加文件上传的验证、限制文件大小、处理并发请求等。
腾讯云相关产品和产品介绍链接地址:
请注意,以上仅为腾讯云的一些相关产品,其他云计算品牌商也提供类似的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云