我已经按照下一个教程:http://cwbuecheler.com/web/tutorials/2014/restful-web-app-node-express-mongodb/ 几天后我完成了所有工作,但更新用户数据库是为了读者自己。
我编辑了jade模板,并在更新链接上为点击事件添加了一些javascript。 我甚至可以从列出的testuser中检索userID。用警报测试了这个,没问题。
点击事件的javascript:global.js
function showUser2Edit(event){
event.preventDefault();
var userID = $(this).attr('rel');
// alert (userID);// _id from MongoDB, ok!
// jQuery AJAX call for JSON
$.getJSON( '/users/userdata/' + userID, function( data ) {
// populate edit form
alert (JSON.stringify(data));
}
}
在users.js(服务器端node.js)
/*
* GET userData
*/
router.get('/userdata', function(req, res) {
var db = req.db;
var collection = db.get('users');
collection.find({_id: ?????? },{},function(e,docs){
res.json(docs);
});
});
2个问题我真的不知道如何解决它们:
Ajax调用将是:users / userdata / _id(_id是一个长字符串,由MongoDB自动添加为键)。但是如何将此添加到此路由器功能?
这个_id必须放在collection.find(....)的where部分,但是如何从url中提取这个?
提前感谢您的帮助!
复制标记不正确,一个是查询参数:?color = red,如何访问变量颜色?,mines是一个REST系统,其中id是url本身的一部分。
答案 0 :(得分:2)
您需要更改
router.get('/userdata'...
要:
router.get('/userdata/:id'...
:id - 它的参数。如果你在node.js中使用body-parser来检查req.body.params。
答案 1 :(得分:0)
你改变了:
$.getJSON( '/users/userdata/' + userID, function( data ) {
要:
$.getJSON( '/users/userdata/?id=' + userID, function( data ) {
并在节点中使用 - req.query.id。