NTVS не запускает службу узла на указанном мной порту

Порт 8010 указан в app.json, работает node index.js запускает службу на порту 8010. NTVS запускает ее на случайно назначенном порту каждый раз, когда я запускаю службу.

У меня мало опыта с этим, но недавно я получил большую базу кодов Nodejs/Express/Kraken/Angular для работы. Первым делом я установил NTVS (Node tools for Visual Studio). Почему? Потому что Visual Studio - это то, с чем я знаком

Я создал новый проект из существующего источника, запустил код, он работает и работает, но каждый раз он запускается на другом случайно назначенном номере порта.

Затем я добавил значения для узлов и портов отладки в конфигурации проекта

Это запустит отладчик, прослушивающий этот порт

но приложение запустится на другом порту

Если я запускаю в режиме выпуска, отладчик по-прежнему запускается на 8001, и служба начинает прослушивать какой-то случайный порт, который не является 8000 или 8010.

Итак, я попытался запустить без портов, указанных в настройках проекта, и с портами в настройках проекта.

Кто-нибудь есть идеи, что мне нужно сделать, чтобы запустить приложение на порт, указанный в app.json?
Спасибо

Обновить
Приложение использует 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);
    }

У объекта приложения есть метод configure, но, похоже, это никак не влияет на порт.

3 ответа

Решение

Попробуйте жестко запрограммировать порт при создании сервера.

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

Добавьте запись в текстовое поле переменных среды в диалоге свойств вашего проекта.

PORT:8000

Это будет установлено в process.env.PORT.

Благодарю.

"Node.js port:" в свойствах проекта просто устанавливает переменную среды "PORT" перед запуском процесса узла.

Это будет эквивалентно:

SET PORT=1234
node myapp

Кракен, кажется, использует process.env.PORT в дополнение к аргументам команды и файлу конфигурации. Смотрите https://github.com/krakenjs/kraken-js/issues/142

Другие вопросы по тегам