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