使用端口侦听器在开发中运行 Express 应用程序,并使用 Cloud Functions 导出应用程序

问题描述 投票:0回答:1

我有一个具有开发模式的快速应用程序,端口上有侦听器。但对于云功能,我需要使用 https.onRequest 导出应用程序。用if条件做可以吗

  ...
  .use(router)
  .use(ErrorHandler);

if (process.env.NODE_ENV && process.env.NODE_ENV.trim() == 'development') {
  app.listen(config.DEV_PORT, () => {
    console.log(`Webserver started. Port ${config.DEV_PORT} is listening...`);
    console.log(`Hosting URL: http://localhost:${config.DEV_PORT}/`);
  });
} else {
  const functions = require('firebase-functions');
  exports.app = functions.https.onRequest(app);
}

它在没有条件的情况下运行良好,但我不知道这个应用程序发生了什么。部署后在 firebase 服务器上监听。它在听什么吗?是否使用内存?

我将非常感谢您的解释。

  ...
  .use(router)
  .use(ErrorHandler);

 app.listen(config.DEV_PORT, () => {
    console.log(`Webserver started. Port ${config.DEV_PORT} is listening...`);
    console.log(`Hosting URL: http://localhost:${config.DEV_PORT}/`);
  });
  const functions = require('firebase-functions');
  exports.app = functions.https.onRequest(app);
node.js firebase express google-cloud-functions
1个回答
0
投票

对于 http 类型的函数,Cloud Functions 基础设施会监听您,并将任何传入请求转发到您的 Express 应用程序。这就是无服务器产品的工作方式 - 处理您的功能的服务器实例可能会扩展或缩小以处理负载,因此系统必须为您进行侦听(即使您有 0 个实例正在运行)。不可能在您自己的代码中监听(因为您可能只有 0 个实例在运行,并且您的任何实例都不会监听)。

© www.soinside.com 2019 - 2024. All rights reserved.