[英]NODEJS : Front end and back end on different port?
我正在编写一个带有前端/后端的 NodeJS 网站。 建议将文件分开,这样我的前端将通过 API 向我的后端请求数据。
将前端和后端放在同一台服务器上是一种好习惯吗? 我需要在不同的端口上运行它们吗?
在同一台服务器上拥有前端和后端并不是一个坏习惯,但如果您的前端是 static,它也不是很理想。
如果您熟悉云提供商,您可以将您的 static 前端文件放在云存储(AWS S3、Google 云存储或 Azure 存储...)
要从同一台服务器提供前端和后端服务,您可以执行以下操作:
在您的 node.js 服务器中,您可以使用相同的快速应用程序为后端和前端提供服务。
在这个级别,您不必使用不同的端口,因为您必须创建两个在两个不同端口上侦听的 express 实例。
const express = require("express");
const router = express.Router();
const port = process.env.PORT || 3000;
const app = express();
/* serve your API */
app.use("/api", router);
/* serve your front (stored in the public folder) */
app.use("/", express.static("public"));
/* API routes */
router.get("/", (req, res) => {
res.json({ data: "response to get" });
});
router.post("/", (req, res) => {
res.json({ data: "response to post" });
});
app.listen(port, () => {
console.log(`listening on port ${port} ...`);
});
最后,为了为您的最终用户提供前端和后端服务,您可以使用 Nginx 作为反向代理服务器,配置两个不同的端口,您还可以支持 HTTPS
是的,你不能监听已经在使用的端口,在随机端口上运行 nodejs 服务器并使用 web 服务器提供前端(nginx,apache ...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.