Node.js 发送文件到客户端
在本文中,我们将学习如何使用 Express 在 Node.js 中向客户端发送文件。
在 Node.js 中使用 Express 发送文件
Express.js 或 Express 是 Node.js 的后端 Web 实用程序框架。 Express 是一个 Node.js Web 应用程序框架,可为 Web 和移动应用程序提供强大的特性集。
函数 res.sendFile() 传递指定路径中的文件,并根据文件扩展名设置内容类型响应的 HTTP 标头字段。
语法:
res.sendFile(path [, options] [, fn])
参数 | 说明 |
---|---|
path | 一个强制参数,描述需要发送的文件的路径。 |
options | 一个可选参数,包含正在发送的文件的各种属性,例如 maxAge、root 等。 |
fn | 文件时调用的回调函数。 |
按照以下说明将文件发送给客户端。
完整的源代码 - index.js:
const express = require('express');
const app = express();
const path = require('path');
const PORT = 3001;
app.get('/', (req, res, next) => {
const fileName = 'helloworld.txt';
res.sendFile(fileName, {root: path.join(__dirname)}, (err) => {
if (err) {
next(err);
} else {
console.log('File Sent:', fileName);
}
});
});
app.listen(PORT, (err) => {
if (err) console.log(err);
console.log("Server listening on PORT", PORT);
});
在上面的例子中,我们创建了一个监听指定端口 3001
的服务器,一旦服务器监听到指定的端口,它就会执行第一个匹配路由里面的代码。
然后响应对象将通过 sendFile()
方法返回给客户端。 如果遇到任何错误,它将使用 next()
方法将错误传递给错误处理程序。
如果一切顺利,它会将响应对象与文件内容一起返回给客户端。
尝试在支持 Node.js 的 replit 中运行上面的代码,它会显示如下结果。
输出:
Server listening on PORT 3001
File Sent: helloworld.txt
相关文章
Node.js 中的 HTTP 发送 POST 请求
发布时间:2023/03/27 浏览次数:200 分类:Node.js
-
在本文中,我们将学习如何使用 Node.js 使用第三方包发出发送 post 请求。
Node.js 与 React JS 的比较
发布时间:2023/03/27 浏览次数:137 分类:Node.js
-
本文比较和对比了两种编程语言,Node.js 和 React。React 和 Node.js 都是开源 JavaScript 库的示例。 这些库用于构建用户界面和服务器端应用程序。