【问题标题】:npm express "hello world" middleware errornpm express“hello world”中间件错误
【发布时间】:2014-04-16 23:07:35
【问题描述】:

节点--版本 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);
});

我在终端中尝试“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

我是 express 的新手,欢迎任何帮助。谢谢。

【问题讨论】:

  • 这个错误总结得差不多了,express.logger() 不再包含,你必须单独安装。

标签: node.js express middleware


【解决方案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

【讨论】:

  • 在最后一行我必须写“app.use(logger());”让它发挥作用。
【解决方案2】:

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

npm install --save morgan

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

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

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

【讨论】:

    【解决方案3】:

    您需要以前的版本:

    npm install express@3.0.0
    

    【讨论】:

      【解决方案4】:

      大多数中间件(如记录器)不再与 Express 捆绑在一起,并且 必须单独安装。请参见 https://github.com/senchalabs/connect#middleware

      express.logger('dev') 已从 express 模块中移除

      使用像 morgan 这样的记录器。

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

      有关摩根结帐的更多详细信息,请访问以下链接 morgan

      【讨论】:

      • 应该是 app.use 而不是 app.user。
      猜你喜欢
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      相关资源
      最近更新 更多