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

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

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

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

我们的技术堆栈将是:

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

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

谢谢你的答案和帮助.

解决方法

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

有几种可能性:

>您可以使用像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中完成它,但它也应该是可能的.

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

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...