无法在Express中找到方法

时间:2014-09-19 04:55:28

标签: node.js express

我有这样的节点js代码:

var express = require('express')
  , app = express.createServer();

app.use(express.bodyParser());

app.post('/', function(request, response){
  console.log(request.body);      // your JSON
  response.send(request.body);    // echo the result back
});

app.listen(3000);

当我跑步时,我得到这样的错误:

  , app = express.createServer();
                  ^
TypeError: Object function createApplication() {
  var app = function(req, res, next) {
    app.handle(req, res, next);
  };

  mixin(app, proto);
  mixin(app, EventEmitter.prototype);

  app.request = { __proto__: req, app: app };
  app.response = { __proto__: res, app: app };
  app.init();
  return app;
} has no method 'createServer'
    at Object.<anonymous> (/Users/anto_belgin/programs/node/appleconnect.js:2:19)
    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

npm install express

我需要做些什么让它发挥作用吗?

1 个答案:

答案 0 :(得分:2)

在我的Express 4应用程序中,我正在这样做:

var express = require('express'); 
var app = express(); 
var server = app.listen(8081, function() {});

由于express从v3更改为v4,请确保您正在查看正在运行的版本的说明。

我认为createServer()是您在http模块上执行的操作,而express则在更高级别上运行,因此如果您使用快速模块启动服务器,则执行此操作不同。

从Express文档中,app.listen()是一种替代方法的便捷方法:

app.listen = function(){
  var server = http.createServer(this);
  return server.listen.apply(server, arguments);
};