ss js find()查找不存在的用户

时间:2017-11-19 16:36:19

标签: find sails.js

我正在尝试在SailsJS中构建一个简单的服务器并遇到问题:我在Sails中向服务发送POST请求,即使磁盘数据库中没有匹配的用户,我总是得到200响应

我的模特:

module.exports = {
  attributes: {
    name: { type: "string" },
    lastName: { type: "string" }
  }
};

我的路线档案:

module.exports.routes = {  
  'post /authTest' : 'UserController.testingAuth'

};

我的控制器:

module.exports = {
    testingAuth : function(req, res) {
        var temp = req.param("name");
        sails.log(temp);
        User.find({ name: 'testing123' }).exec(function(err, user) {
            if (err) {
                sails.log("inside err block");
                return res.serverError(err);
            }
            sails.log("skipped err block");
            return res.json(user);
        })
    }
};

我称之为服务的方式:

var testUser = { name: 'notMyName', lastName: 'myLastName' };
$http.post("http://localhost:1337/authTest", testUser);

然后在SailsJS控制台上我看到:

debug: notMyName
debug: skipped err block

我的本​​地数据库只有以下内容(.tmp中的localDiskDb.db):

{
  "data": {
    "passport": [],
    "user": [
      {
        "name": "myName",
        "lastName": "myLastName",
        "createdAt": "2017-11-18T17:26:13.609Z",
        "updatedAt": "2017-11-18T17:26:13.609Z",
        "id": 1
      }
    ]
  },
// some schema stuff, irrelevant here
}

有人在这里看错了吗?该服务接收已发布的请求对象,搜索不在数据库中的用户,但仍然找到一个用户?

1 个答案:

答案 0 :(得分:0)

检查出来:

User.find({ name: 'testing123' }).exec(function(err, user) {
        if (err) {
            sails.log("inside err block");
            return res.serverError(err);
        }
        sails.log("skipped err block");
        return res.json(user);
    })

User.findOne({ name: 'testing123' }).exec(function(err, user) {
        if (err) {
            sails.log("inside err block");
            return res.serverError(err);
        } else if(user){
            // user found here
            return res.json(user);
        } else {
             //no user found
             return res.json(null);
        }
    })

如果你想坚持find()

User.find({ name: 'testing123' }).exec(function(err, users) {
    if (err) {
        sails.log("inside err block");
        return res.serverError(err);
    } else if(users.length == 0) {
          //users is empty array of results
          return res.json(users)
    } else {
          //users is array of N records with criteria 'testing123' in field 'name'
          return res.json(users);
    }
})