繁体   English   中英

NODEJS:不同端口上的前端和后端?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM