node.js - 生产中的 Node.js 应用程序部署?
问题描述
我想构建/捆绑和部署 node.js,在 Apache、Wamp 或 Tomcat 等生产服务器中表达。
我的 node.js 应用程序具有纯后端逻辑,例如 API 端点、数据库连接等。
这将为来自单独前端应用程序的 API 请求提供服务。FE appln 在服务器中独立构建和部署。它按预期工作。
但是没有正确部署 node.js 后端应用程序的想法。
当前运行 Node.js 应用程序如下
服务器.bat
rem node ./server.js
nodemon ./server.js PORT=7071
我们将执行 server.bat 文件来启动服务器并按预期执行。但它经常被终止。因此,期望进行适当的部署,例如在服务器中构建、构建和部署代码。
我们是否需要像 Grunt/Babel 这样的其他任务运行器来进行捆绑?
解决方案
您实际上不需要捆绑代码以在服务器上运行 node.js 应用程序。您可以使用 Babel,但您需要使用它的唯一原因是您使用的 ECMAScript 功能在您的 node.js 运行时版本中尚不可用。
如果您决定使用 Babel 来启用import
语法等功能,Babel 将处理“转译”您的代码,这涉及更改您的代码以将节点运行时中尚不可用的功能重写为兼容的等效代码。这都是可选的,并且最新版本的 node 支持大多数流行的新 JavaScript 功能。
您正在寻找的是一个进程管理器,它可以确保节点进程在停止运行时重新启动,并且基本上可以帮助您管理正在运行的服务器。一种流行的选择是 PM2 ( http://pm2.keymetrics.io/ )。PM2 还具有用于监控指标和协助部署的附加功能。
推荐阅读
- lets-encrypt - dns01 验证:正在颁发证书。颁发的临时证书
- c++ - 在 C++ 中,可以在数组 ref 和指针之间消除歧义吗?
- vue.js - 在 Nuxt 轮播组件中显示视频
- polymer-2.x - 如果尝试从可排序组中仅移动一张卡片,则会拖动两个可排序项目
- php - 有条件作用域的雄辩关系
- android - 匕首范围问题
- javascript - 将输出添加到每个 for 循环的数组
- javascript - 返回被 Promise 包裹的 fetch 和返回 fetch 一样吗?
- go - Golang:从切片中删除超过 1h 的结构
- sql-server-2012 - 删除临时表但已经建立'数据库中已经有一个名为'#temp'的对象'