我有一台运行Windows10的服务器.我用这个repo创建了一个Express项目.我在开发模式下运行得很好,现在我想部署到生产环境中.我按照指示这样做:

  • 判断皮棉错误:npm run lint
  • 构建用于生产的项目:npm run build
  • 运行生产版本:npm start

但是,当我try 向服务器的IP地址发送GET请求时,我收到连接超时错误.我是否应该做其他事情来为部署到生产中做准备?我需要指定端口号吗?我对Web服务器开发相对较新,所以如果这是一个愚蠢的问题,我很抱歉.我正在通过一款Flutter 翼应用发送这一请求:

  void test() async {    
    var url = Uri.http('ServerIPAddress');

    try {
      var response = await http.get(url);
      if (kDebugMode) {
        print('Response status: ${response.statusCode}');
      }
    } catch (e) {
      if (kDebugMode) {
        print('ERROR: $e');
      }
    }
  }

注意:这都是在一个内部网络上.它不会expose 在公共互联网上.

推荐答案

The express-generator-typescript generates three different environment files by default which each defines some options for running in the different modes. You can find the different default profiles here:
https://github.com/seanpmaxwell/express-generator-typescript/tree/master/lib/project-files/env

对于端口号,默认情况下它将使用以下端口号:

  • 三千元.
  • 8081 (production)
  • 4000 (test)

对于在DART中的连接,我建议使用Uri.parse而不是Uri.http,因为它确实使它容易得多,因为后者使用起来有点复杂.

因此,如果使用默认配置文件,则连接到生产运行服务器的方式如下所示:

var url = Uri.parse('http://<IP_OR_DOMAIN_TO_SERVER>:8081/');

应该注意的是,在"实际"生产中,您不会将该实例设置为公共的,而是可以通过一个代理转发它,该代理可以具有HTTPS并在端口443上运行.例如,使用nginx.

Node.js相关问答推荐

try 使用Puppeteer抓取Twitter时数组空

CloudTasksClient在Firebase Function % s onDocumentCreated中实例化时导致错误

Node.js分页返回空数组

如果我加入另一个公会且我的​​机器人已在其中,欢迎消息发送错误

Node.js 连接在查询完成之前终止

将图像添加到多个产品的条带 checkout 会话中

运行 cypress 测试时如何指定 .env 文件用于我的开发服务器?

使用react 组件加载特定 DIV 而无需重新加载整个页面

try 运行迁移时的 Typeorm:缺少必需的参数:dataSource

NodeJs 过滤掉目录异步

使用中的端口代码:'EADDRINUSE',即使在 kill 命令之后

node.js 中 pdfkit-tables 中的垂直线

NodeJS为exec设置环境变量

为什么 JavaScript 的 parseInt(0.0000005) 打印5?

如何在 NodeJs 中下载和解压缩内存中的 zip 文件?

Node.JS 中的基本 HTTP 身份验证?

npm package.json 操作系统特定脚本

__dirname 未在 Node 14 版本中定义

在 Node 中连接和缩小 JS 文件

AWS Lambda 函数写入 S3