如果它们是分开的,如何部署后端和前端项目?

Vic*_*nto 8 rest frontend backend node.js hapijs

我正在开发一个小团队的Web应用程序,经过研究和研究,我们发现分离后端和前端项目是一个很好的做法.因此,我们将使用hapijs和mysql数据库开发后端作为REST API,使用angularjs开发前端.

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

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

我们的技术堆栈将是:

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

我们将使用microsoft azure来托管我们的网络应用程序.

谢谢你的答案和帮助.

nbe*_*ezs 6

它们不必位于同一服务器中.将后端放在不同的服务器上是完全没问题的,如果你需要扩展你的后端/前端而不是另一个,那么它也很方便.

有几种可能性:

  • 您可以使用像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);
});
Run Code Online (Sandbox Code Playgroud)

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

我相信还有更多的选择,那些是我熟悉的.


Ami*_*ghe 5

作为一个新手团队,您可能会遇到很多问题。最好的办法是将前端和后端分离为单独的单元。这将带来更好的全栈开发流程。这https://www.freecodecamp.org/news/lessons-learned-from-deploying-my-first-full-stack-web-application-34f94ec0a286/

文章解释了使用 React 作为前端和 Express js 作为后端的过程。它是为初学者精心设计的。它包括有关您的问题的详细解释。