NodeJS Connect错误 - 没有方法'logger'

时间:2014-07-11 07:37:58

标签: node.js

这里的nodejs相当新。我有一个运行的nodejs webserver,它通过ajax提供数据。我现在需要扩展服务器以响应各种发布请求。我试图运行的是bodyParser中间件,但是在不同的开发PC上。

os:debian nodejs:v0.10.29

以普通用户和root

运行“npm install connect”

var http = require('http');
var connect = require('connect');

var app = connect()
  .use(connect.logger('dev'))
  .use(connect.static('public'))
  .use(connect.bodyParser())
  .use(function(req, res){
    res.end(JSON.stringify(req.body));
  })

http.createServer(app).listen(2081);

获得此输出     carl @ crunchbang:〜/ nodedev $ node ./test.js

/home/carl/nodedev/test.js:5
  .use(connect.logger('dev'))
               ^
TypeError: Object function createServer() {
  function app(req, res, next){ app.handle(req, res, next); }
  merge(app, proto);
  merge(app, EventEmitter.prototype);
  app.route = '/';
  app.stack = [];
  return app;
} has no method 'logger'
    at Object.<anonymous> (/home/carl/nodedev/test.js:5:16)
    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:906:3

我知道我错过了一些非常简单的任何帮助。

2 个答案:

答案 0 :(得分:17)

Connect不再附带捆绑的中间件。您的代码看起来就像包含中间件一样。

var http = require('http');
var connect = require('connect');
var bodyParser = require('body-parser');
var logger = require('morgan');

var app = connect()
  .use(logger())
  .use(connect.static('public'))
  .use(bodyParser.urlencoded({
      extended: true
  }))
  .use(bodyParser.json())
  .use(function(req, res){
    res.end(JSON.stringify(req.body));
  })

http.createServer(app).listen(2081);

答案 1 :(得分:3)

正如您在文档中看到的那样:https://www.npmjs.org/package/connect

  摩根 - 以前的记录器

现在你需要使用摩根。