TypeError:对象函数(req,res,next){app.handle(req,res,next);没有方法'配置'

时间:2014-03-08 04:44:11

标签: javascript node.js express

有人能指出我在尝试运行以下代码时遇到此错误的原因吗?

 var express = require('express');
 var login = require('./routes/login');

 var app = express();

 //all environments
 app.configure(function () {
 app.use(express.logger('dev')); 
 app.use(express.bodyParser());
});


app.post('/loginUser',login.loginUser);


app.listen(3000);

console.log("Listening on port 3000...");

我使用带有快速4.x版本的node.js。

2 个答案:

答案 0 :(得分:10)

汤姆在他的博客文章new-features-node-express-4中提供了如何使用快速版本3.x中的app.configure转换为在快速版本4.0中删除它的示例。

为方便起见,我添加了下面的代码示例。在下面的示例中,您可以替换" set"使用"使用"。

版本3.x

// all environments
app.configure(function(){
  app.set('title', 'Application Title');
})

// development only
app.configure('development', function(){
  app.set('mongodb_uri', 'mongo://localhost/dev');
})

// production only
app.configure('production', function(){
  app.set('mongodb_uri', 'mongo://localhost/prod');
})

版本4.0

// all environments
app.set('title', 'Application Title');

// development only
if ('development' == app.get('env')) {
  app.set('mongodb_uri', 'mongo://localhost/dev');
}

// production only
if ('production' == app.get('env')) {
  app.set('mongodb_uri', 'mongo://localhost/prod');
}

答案 1 :(得分:8)

Express 4.x没有配置方法。

https://github.com/visionmedia/express/wiki/Migrating-from-3.x-to-4.x

此外,它不会在很久以前被弃用express.loggerexpress.bodyParser