我使用Sails和Waterline,我会将url中的用户名与数据库元素进行比较以查找用户。
http://localhost:1337/johndoe(或id)在数据库中找到John Doe。
我的控制器,暂时:
user: function (req, res) {
var user = req.param('user');
var elt = (/^[0-9]*$/.test(user))?{id: user}:{name: user};
User.findOne(elt).exec(function (err, user) {
if (err) res.json({ error: 'DB error' }, 500);
if (user) {
res.json(user);
} else {
res.json({ error: 'User not found' }, 404);
}
});
}
请问一个想法?
答案 0 :(得分:0)
将elt放在where函数中,如下所示:
user: function (req, res) {
var user = req.param('user');
var elt = (/^[0-9]*$/.test(user))?{id: user}:{name: user};
User.findOne().where(elt).exec(function (err, user) {
if (err) res.json({ error: 'DB error' }, 500);
if (user) {
res.json(user);
} else {
res.json({ error: 'User not found' }, 404);
}
});
}