npm表达"hello world"中间件错误

use*_*240 10 middleware node.js express

node --version v0.10.26

npm --version 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);
});
Run Code Online (Sandbox Code Playgroud)

我在终端尝试'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
Run Code Online (Sandbox Code Playgroud)

我是快递的新人,欢迎任何帮助.谢谢.

小智 36

第一行告诉所有:

错误:大多数中间件(如logger)不再与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());
Run Code Online (Sandbox Code Playgroud)

记住npm install morgan和/或将其添加到您的package.json

  • 在最后一行我不得不写"app.use(logger());" 使它工作. (6认同)

小智 6

我遇到了同样的问题.我从我的节点js文件所在的目录运行以下内容

npm install --save morgan
Run Code Online (Sandbox Code Playgroud)

使用上面的命令将依赖项添加到package.json.

添加包后,现在可以使用记录器

logger = require('morgan');
app.use(logger('dev'));
Run Code Online (Sandbox Code Playgroud)