Ответ 1
Похоже, что способ запуска приложения изменился. Вместо node app
вы должны сделать
npm start
Подробнее здесь https://github.com/expressjs/generator
Я пытаюсь научиться создавать веб-приложения с nodejs
и expressjs
, следуя руководству по началу работы, найденному на веб-сайте expressjs, под заголовком Использование выражения (1) для создания приложения.
Я сгенерировал приложение, используя плагин express-generator
, запустил npm install
, а затем попытался запустить приложение с помощью node app
(я также пробовал node app.js
для хорошей меры. При запуске любой из этих команд там не выводит на терминал вообще.
Я также попытался отладить приложение с помощью node debug app
со следующими результатами:
< debugger listening on port 5858
connecting... ok
break in app.js:1
1 var express = require('express');
2 var http = require('http');
3 var path = require('path');
debug> cont
program terminated
debug> cont
App isn't running... Try `run` instead
debug>
Я нашел файл bin/www
, который, казалось, содержал код для запуска сервера, и, конечно же, запуск node bin/www
преуспел в запуске приложения.
Что мне здесь не хватает?
Похоже, что способ запуска приложения изменился. Вместо node app
вы должны сделать
npm start
Подробнее здесь https://github.com/expressjs/generator
Некоторые приложения node.js
могут пытаться демонтировать или форк самостоятельно при запуске.
Например, haraka
использует npm daemon
. Чтобы избежать выхода из исходного процесса, вам обычно нужно отключить режим демона в приложении или попытаться использовать отладчик repl
для обхода части кода, который демонизирует.
Например, при haraka
установите точку останова здесь:
server.js:
53 Server.daemonize = function () {
->54 var c = this.cfg.main;
55 if (!c.daemonize) return;
то
repl
в консоли debug>
this.cfg.main.daemonize = false
Ctrl+c
один раз, чтобы выйти из repl
Я думаю, что может быть немного поздно ответить на вопрос, добавляя app.listen()
, чтобы приложение запускалось непосредственно с помощью node app.js
app.listen(port, function(){
console.log("Starting on port:",port)
}
)