【问题标题】:How to update a live running server?如何更新实时运行的服务器?
【发布时间】:2022-11-10 06:52:49
【问题描述】:

我将很快发布我的第一个 rest api。我的问题是,一旦我发布它,我该如何更新服务器的代码?我已经添加了版本控制,但我仍然不明白当我推送新代码时会发生什么。如果我推送新代码,服务器不需要重新启动吗?还是保留旧版本的代码,除非新版本已上传并准备好运行,然后它会立即用新代码替换旧代码。有人能解释一下这个过程是如何工作的吗?因为版本控制仅适用于路由,但如果我更改 server.js 文件中的某些内容怎么办?

我还没有尝试过,没有这方面的经验。

【问题讨论】:

标签: node.js express deployment server production-environment


【解决方案1】:

这是一个示例,说明如何在运行的 express 服务器中交换应用程序。使用以下代码运行node

function app(req, res, next) {
  setTimeout(function() {
    res.end("App version 1");
  }, 5000);
}
express().use(function(req, res, next) {
  app(req, res, next);
}).listen(80);
readline.createInterface(process.stdin).on("line", function(line) {
  line = line.split(" ");
  if (line[0] === "upgrade") app = require("./" + line[1]);
});

并在单独的文件中准备好更新版本的应用程序(例如appv2.js):

module.exports = function(req, res, next) {
  res.end("App version 2");
};

现在,如果您在正在运行的node 进程的控制台中键入upgrade appv2(加上ENTER),它将用较新的版本替换app,而来自应用程序版本1 的长时间运行(5 秒)请求仍然完成.只有升级后收到的请求才会在应用版本 2 中执行。

【讨论】:

    猜你喜欢
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多