3

8010 端口在 app.json 中指定,running 会在 8010node index.js端口启动服务。每次启动服务时,NTVS 都会在随机分配的端口上启动它。

我对此几乎没有经验,但最近得到了一个大型的 Nodejs/Express/Kraken/Angular 代码库来使用。我做的第一件事是安装 NTVS(Visual Studio 的节点工具)为什么?因为Visual Studio是我熟悉的

我从现有源创建了一个新项目,启动代码,它运行并工作,但每次都在不同的随机分配的端口号上启动。

然后我在项目配置中添加了节点和调试端口的值在此处输入图像描述

这将启动调试器在该端口上侦听在此处输入图像描述

但该应用程序将在不同的端口上启动在此处输入图像描述

如果我在发布模式下运行,调试器仍会在 8001 上启动,并且服务会开始侦听某个不是 8000 或 8010 的随机端口。

所以,我尝试在项目设置中没有指定端口的情况下运行,并且在项目设置中使用端口

有人知道我需要做什么才能在 app.json 中指定的端口上启动应用程序吗?
谢谢

更新
该应用程序正在使用 Kraken。Kraken 似乎从 app.json 和 app-development.json 文件中获取端口配置。当使用节点直接运行时,这一切都按预期工作,甚至通过 WebStorm(我有一个评估版)

index.js 中用于启动应用程序的代码没有将端口直接传递给 kraken

kraken.create(app).listen(function (err) {
    if (err) {
        var log = require('log4js').getLogger(loggerName);
        log.error(err.stack);
    }

app 对象有一个 configure 方法,但这似乎对端口没有任何作用。

4

3 回答 3

1

在创建服务器时尝试对端口进行硬编码。

kraken.create(app).listen(53530, function (err) {
    if (err) {
        var log = require('log4js').getLogger(loggerName);
        log.error(err.stack);
});
于 2015-03-26T15:21:25.293 回答
1

在项目属性对话框中的环境变量文本框中添加一个条目。

PORT:8000

这将被设置到 process.env.PORT。

于 2016-11-10T14:31:04.900 回答
0

项目属性中的“Node.js 端口:”只是在启动节点进程之前设置环境变量“PORT”。

这相当于:

SET PORT=1234
node myapp

除了命令参数和配置文件之外,Kraken 似乎还使用了 process.env.PORT。见https://github.com/krakenjs/kraken-js/issues/142

于 2015-01-30T13:16:29.770 回答