快速路线:.get()需要回调函数,但得到一个[object Object] [英] Express routes: .get() requires callback functions but got a [object Object]

查看:578
本文介绍了快速路线:.get()需要回调函数,但得到一个[object Object]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好的,这个应该很容易让人指出。



我查了其他类似的问题,没有帮助。



我正在尝试将所有路线移至单独的 routes.js 文件。在其中我有:

  module.exports = function(app){

var user =
list:require('./ routes / user.js')
}
,index = {
index:require('./ routes / index.js')
}


app.get('/',function(request,response){
response.send('你把它转到主页)
});

app.get('/ users',user.list);
}

在我的 app.js file我有这个:

  var register_routes = require('./ routes.js')
register_routes (app)

我的索引路线工作正常,但它踢回应用程序.get('/ users',user.list); 出现此错误:


.get()需要回调函数,但得到一个[object Object]


这是一个开箱即用的应用程序,所以这不是太多的描述。



谢谢。



编辑:根据请求,这里是 ./ routes / user.js 中的内容:

  exports.list = function(req,res){
res.send(respond with a resource);
};


解决方案

使用密钥 list 将您的函数作为值。



所以要访问你的函数,你需要这样做 require ('./routes/user.js')。列表



或者你的代码 user.list.list



为了解决这个问题,你有两种可能。



/ p>

  var user = {
list:require('./ routes / user.js')。list
}

或:

  module.exports = function(req,res){
res.send(response with a resource);
};

编辑



如果您的 routes / user.js 可能稍后如下所示:

  module.exports.list = function(req,res){
res.send(response with a resource);
};

module.exports.delete = function(req,res){
res.send(delete user);
};

如果是,那么你可以这样写在 routes.js

  var user = require('./ routes / user.js'); 


Ok, this should be easy for somebody to point out.

I checked the other similar questions and none helped.

I'm trying to move all my routes to a separate routes.js file. In it I have:

module.exports = function (app) {

  var user = {
      list : require('./routes/user.js')
    } 
  , index = {
      index : require('./routes/index.js')
    } 


  app.get('/', function(request, response){
    response.send('You made it to the home page.')
  });

  app.get('/users', user.list);
}

And in my app.js file I have this:

var register_routes = require('./routes.js')
register_routes(app)

My index route works fine, but it kicks back on app.get('/users', user.list); with this error:

.get() requires callback functions but got a [object Object]

This is an out of the box express app so theres not too much to describe.

Thanks.

EDIT: Per request, here is what is in ./routes/user.js :

exports.list = function(req, res){
  res.send("respond with a resource");
};

解决方案

You export an object with the key list having the your function as value.

So to access your function you would need to do this require('./routes/user.js').list

Or with your code user.list.list.

To solve this you have two possibilities.

Either write:

var user = {
  list : require('./routes/user.js').list
}

Or:

module.exports = function(req, res){
   res.send("respond with a resource");
};

EDIT

If your routes/user.js will probably later look like this:

module.exports.list = function(req, res){
   res.send("respond with a resource");
};

module.exports.delete = function(req, res){
   res.send("delete user");
};

If yes then you can just write it that way in your routes.js:

var user = require('./routes/user.js');

这篇关于快速路线:.get()需要回调函数,但得到一个[object Object]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆