2012-09-13 73 views
0

我正在使用Express框架为我的节点应用程序。我很新,所以我想我会创建一个事实上的“待办事项”应用程序来了解它。我正在尝试执行的操作记录了一个用于调试目的的请求。所以,当我去:console.log GET请求与Node.js

app.get('/todos/:id', function (req, res) { 
    var result = db.load(req.params.id); 
    result ? res.send(result) : res.send(404); 
}); 

我想一)看到什么result等于和b)登录我db.load方法会发生什么:

exports.load = function (id) { 
    todos.findOne({ id: id }, function (err, todo) { 
     if (!err) { 
      return todo; 
     } 
    }); 
} 

我使用mongolian库访问我的MongoDB数据。我遵循了史蒂夫桑德森的一个例子:https://github.com/SteveSanderson/nodejs-webmatrix-video-tutorials

+0

你的问题是什么?目前还不清楚为什么你不能做你所描述的。 – lanzz

+0

当我把'console.log'放在哪里的时候,它并没有出现,所以我可以在''load''或'get'方法中放置'console.log(“Hello”),并且什么也没有出现 – CallumVass

回答

2
app.get('/todos/:id', function (req, res) { 
    db.load(req.params.id, function(err, result) { 
     // also handle err 
     result ? res.send(result) : res.send(404); 
    }); 
}); 


exports.load = function (id, callback) { 
    todos.findOne({ id: id }, callback); 
} 
+1

考虑添加一些解释给你的答案,因为提问者显然被异步控制流困惑。 – lanzz

+0

当我传入'req.params.id'时,我得到一个404,但是如果我硬编码一个值(例如:1),它会返回该对象。如果我把'console.log(req)'看到这些值,什么都没有出现? – CallumVass

+0

嗯..我想通了..我不得不这样做:'db.load(parseInt(req.params.id)..' – CallumVass