Node.js 如何在live server上自动运行node js(express)应用程序?

Node.js 如何在live server上自动运行node js(express)应用程序?,node.js,angular,express,server,Node.js,Angular,Express,Server,我的Angular应用程序有类似express应用程序的后端。如何在远程服务器上部署该应用程序,并且该应用程序始终在服务器上工作 有人说直接将node作为服务器运行不是一个好主意,也有人说这无关紧要。无论如何: 有多种方法可以实现这一点: 码头工人 基于节点创建Dockerfile,在应用程序上进行复制,并使用restart(docker服务)作为容器启动构建的映像。可以是这样的(非常简单): systemd(在Linux系统上) 直接在操作系统上创建服务,并让它自动重新启动。有关这方面的更多信

我的Angular应用程序有类似express应用程序的后端。如何在远程服务器上部署该应用程序,并且该应用程序始终在服务器上工作

有人说直接将node作为服务器运行不是一个好主意,也有人说这无关紧要。无论如何:

有多种方法可以实现这一点:

码头工人 基于节点创建Dockerfile,在应用程序上进行复制,并使用restart(docker服务)作为容器启动构建的映像。可以是这样的(非常简单):

systemd(在Linux系统上) 直接在操作系统上创建服务,并让它自动重新启动。有关这方面的更多信息:

pm2

您可以考虑使用nginx作为节点应用程序的代理的建议。这里有更多关于这方面的信息(此链接还有pm2的示例):


编辑:2020-01-27 fastify和pm2的示例 因为这个问题的作者想让我提供一个pm2的例子,我们来:

预请求站点 创建服务器 启动pm2流程(es) 后果
请您分享使用
pm2
运行express server的所有步骤,因为在我使用
pm2
运行express server之后,当我试图通过Angular应用程序对该服务器进行API调用时,我可以看到该服务器尚未运行。谢谢你,完成了。编辑我的答案-祝你好运!
FROM node:latest
COPY ./app:/APP_DIRECTORY
RUN node /APP_DIRECTORY/index.js
mkdir pm2-test
cd pm2-test
npm init -y
npm install --save fastify
npm install --save-dev nodemon
npm install -g pm2
touch index.js
// package.json -> scripts section
[...]
"scripts": {
  "start": "pm2 start index.js",
  "dev": "nodemon index.js"
},
[...]

// index.js -> copied from fastify's example on github
// Require the framework and instantiate it
const fastify = require('fastify')({
  logger: true
})

// Declare a route
fastify.get('/', (request, reply) => {
  reply.send({ hello: 'world' })
})

// Run the server!
fastify.listen(3000, (err, address) => {
  if (err) throw err
  fastify.log.info(`server listening on ${address}`)
})
npm start
// in console:
╰─ npm start

> pm2-test@1.0.0 start /Volumes/Samsung_T5/private/pm2-test
> pm2 start index.js

[PM2] Starting /Volumes/Samsung_T5/private/pm2-test/index.js in 
fork_mode (1 instance)
[PM2] Done.

/** SOME BIG TABLE DISPLAYS ALL OF YOUR RUNNING/STOPPED INSTANCES **/

// In the browser -> localhost:3000
{ "hello": "world" }