如何在数据库中使用Waterline替换元素并与find进行比较?

时间:2015-02-05 12:55:51

标签: request sails.js waterline

我使用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);
        }
    });
}

请问一个想法?

1 个答案:

答案 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);
        }
    });
}