Npm выражение "hello world" ошибка промежуточного программного обеспечения

node --версия v0.10.26

npm --версия 1.4.3

Я последовал за этим: http://expressjs.com/guide.html

который имеет этот код

    var express = require('express'),
    app = express();
app.use(express.logger());

app.get('/', function(req, res){
    res.send('Hello World');
});

var server = app.listen(3000, function() {
    console.log('Listening on port %d', server.address().port);
});

Я пытаюсь 'node app.js' в терминале, и я получил эту ошибку:

Error: Most middleware (like logger) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.

    at Function.Object.defineProperty.get 

(/home/mike/node/helloworld/node_modules/express/lib/express.js:89:13)

    at Object.<anonymous> (/home/mike/node/helloworld/app.js:4:17)

    at Module._compile (module.js:456:26)

    at Object.Module._extensions..js (module.js:474:10)

    at Module.load (module.js:356:32)

    at Function.Module._load (module.js:312:12)

    at Function.Module.runMain (module.js:497:10)

    at startup (node.js:119:16)

    at node.js:902:3

Я новичок в экспресс, любая помощь будет приветствоваться. Спасибо.

Ответ 1

Первая строка сообщает все:

Ошибка: большинство промежуточного программного обеспечения (например, регистратор) больше не связаны с Express и должны устанавливаться отдельно. См. https://github.com/senchalabs/connect#middleware.

Посмотрев https://github.com/senchalabs/connect#middleware, мы увидим, что express.logger был заменен на morgan.

var logger = require('morgan');
app.use(logger); //replaces your app.use(express.logger());

Запомните npm install morgan и/или добавьте его в package.json

Ответ 2

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

npm install --save morgan

Использование вышеприведенной команды добавляет зависимость к вашему package.json.

После добавления пакета logger теперь можно использовать как

logger = require('morgan');
app.use(logger('dev'));

Ответ 3

Большинство промежуточных программ (например, регистратор) больше не связаны с Express и должны устанавливаться отдельно. Пожалуйста, посмотри https://github.com/senchalabs/connect#middleware

express.logger('dev') удален из экспресс-модуля.

используйте logger как morgan.

var morgan = require("morgan");
app.use(morgan('combined'));

для более подробной информации о morgan checkout ниже ссылки morgan

Ответ 4

Вам нужна предыдущая версия:

npm install [email protected]