在passportjs集成后,GET方法无法正常工作

时间:2015-01-19 15:57:01

标签: javascript json angularjs rest passport.js

我在route.js中有以下REST方法。

app.get('/api/todos', isAuthenticated, function(req, res) {
    DB.TodoTable.find()
    .exec(function(err, todos) {
        res.json(todos, function(err){
            if (err) console.log(err);
        });     // return all todos in JSON format

        console.dir(res);
    });
});

调试时我发现' res'对象' statusCode'字段保存数据。这绝对是错误的。并且可能是因为它在角度方面没有得到它。 例如

{
    ...
    statusCode:
     [ { index: Mon Jan 19 2015 09:33:54 GMT+0530 (India Standard Time),
         text: 'hello',
         _id: 23ffs2sdfsdd64c0834534,
         __v: 0 } ] 
}

在controller.js中,我有另一种方法:

Todos.get()
    .success(function(data) {
        console.info("Data received from server:");
        console.dir(data);
    });

我在这里得到了数据' as""。这通常在passportjs集成之前工作。

这是护照的真正原因吗?如果没有,我怎么能让这个工作。

1 个答案:

答案 0 :(得分:0)

我从' res.json'删除回调后得到了这个功能。方法调用。

在这种情况下,回调会导致意外行为。不确定这背后的原因究竟是什么。

但是以下工作:

app.get('/api/todos', isAuthenticated, function(req, res) {
    DB.TodoTable.find()
    .exec(function(err, todos) {
        res.json(todos);     // return all todos in JSON format

        console.dir(res);
    });
});