介绍
在Node.js和Express应用程序中,res.sendFile()
可用于传递文件。当您需要提供静态页面的解决方案时,使用 Express 交付 HTML 文件会很有用。
注意:在 Express 4.8.0 之前,res.sendfile()
支持。此小写版本res.sendFile()
已被弃用。
在本文中,您将学习如何使用res.sendFile()
.
先决条件
要完成本教程,您需要:
- Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。
本教程已通过 Node v16.0.0、npm
v7.11.1 和express
v4.17.1 验证。
步骤 1 – 设置项目
首先,打开终端窗口并创建一个新的项目目录:
- mkdir express-sendfile-example
然后,导航到新创建的目录:
- cd express-sendfile-example
此时,您可以初始化一个新的 npm 项目:
- npm init -y
接下来,您需要安装express
软件包:
- npm install express@4.17.1
此时,您已准备好使用 Express 的新项目。
创建一个新server.js
文件并使用代码编辑器打开它:
const express = require('express');
const app = express();
const port = process.env.PORT || 8080;
// sendFile will go here
app.listen(port);
console.log('Server started at http://localhost:' + port);
重新访问您的终端窗口并运行您的应用程序:
- node server.js
在验证您的项目按预期工作后,您可以使用res.sendFile()
.
第 2 步 – 使用 res.sendFile()
server.js
使用您的代码编辑器重新访问并添加path
,.get()
和res.sendFile()
:
const express = require('express');
const path = require('path');
const app = express();
const port = process.env.PORT || 8080;
// sendFile will go here
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname, '/index.html'));
});
app.listen(port);
console.log('Server started at http://localhost:' + port);
当向服务器发出请求时,会提供一个index.html
文件。
创建一个新index.html
文件并使用代码编辑器打开它:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sample Site</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<style>
body { padding-top: 50px; }
</style>
</head>
<body>
<div class="container">
<div class="jumbotron">
<h1>res.sendFile() Works!</h1>
</div>
</div>
</body>
</html>
此代码将显示消息:res.sendFile() Works!
。
注意:本教程使用BootstrapCDN进行样式设置,但这不是必需的。
保存您的更改。然后,再次打开终端窗口并重新运行服务器。
- node server.js
在服务器运行的情况下,http://localhost:8080
在 Web 浏览器中访问:
您的应用程序现在用于res.sendFile()
提供 HTML 文件。
结论
在本文中,您学习了如何使用res.sendFile()
.