gpt4 book ai didi

node.js - 前后台项目分开怎么部署?

转载 作者:搜寻专家 更新时间:2023-10-31 22:20:02 24 4
gpt4 key购买 nike

我正在和一个小团队开发一个网络应用程序,经过一番研究和研究,我们发现将后端和前端项目分开是一个很好的做法。所以我们将后端开发为REST API,使用hapijs和mysql数据库,前端使用angularjs。

但是在生产环境中它们必须在同一台服务器上,对吗?如果它们位于不同的存储库中,我们如何将它们部署到同一台服务器?

我们是一个相当新的团队,开始了我们在网络开发方面的冒险,所以我们正在研究很多事情以做好事情。

我们的技术堆栈将是:

  • 网络服务器的 Hapijs
  • orm 的续集
  • 用于聊天功能的 socket.io
  • 用于单元测试的 mocha
  • 前端使用angularjs

我们将使用 Microsoft Azure 托管我们的 Web 应用。

感谢您的回答和帮助。

最佳答案

它们不必位于同一服务器中。将后端放在不同的服务器上是非常好的,如果您需要扩展您的后端/前端而不是另一个,这也很方便。

有几种可能性:

  • 您可以使用类似 RabbitMQ 的消息代理在两个微服务之间进行通信

  • 您的前端应用程序可以公开后端的 url,您可以在 AJAX 请求中使用它,这需要您的后端启用 CORS .不喜欢这种方法。

  • 在您的前端使用相对 URL,然后将具有特定模式(如/api/*)的请求通过管道传输到您的后端。您的 AngularJs 应用程序是由 Node.js 服务器提供服务还是也是 Hapi.js 服务器?如果是 Node.js 之类的东西

:

app.all(['/api/*', '/fe/*'], function(req, res) {
console.log('[' + req.method + ']: ' + PROXY + req.url);
req.pipe(request({
url: PROXY + req.url,
method: req.method,
body: req.body,
rejectUnauthorized: false,
withCredentials: true
}))
.on('error', function(e) {
res.status(500).send(e);
})
.pipe(res);
});

PROXY_URL 是后端服务器的 url/ip。没有在 hapi.js 中完成,但它应该也是可能的。

我确信还有更多选择,这些是我熟悉的。

关于node.js - 前后台项目分开怎么部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35445964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com