Sails.js响应未返回对象字段

时间:2018-10-09 09:58:25

标签: javascript mongodb sails.js httpresponse sails-mongo

您好,我是新手,并且希望对此有所帮助。当我查询数据时,我将帆与sails-mongo适配器配合使用,并在我的控制器上使用帆,它返回的状态还可以,并且我可以记录数据,但是当我尝试返回响应时,该对象为空。我尝试了不同类型的res,例如res.send() res.status(200).send(res.json() res.ok()。 这是一个示例控制器方法:

class UserController {

  /**
   * Create User
   * @param {*} req 
   * @param {*} res 
   * @returns {User|Error}
   */
  static async create (req, res) {
    var data = _.pick(req.body, ['username', 'password']);
    Object.assign(data, { status: false });
    try {
      await User.create(data).fetch();
      res.status(200).send('User created successfully.');
    } catch (error) {
      res.status(400).send(error.message);
    }
  }

  /**
   * Get all active users
   * @param {*} req 
   * @param {*} res
   * @returns {[]User|Error}
   */
  static async getActive (req, res) {
    try{
      const users = await User.find({ status: true });
      console.log(users);
      return res.status(200).json(users);
    } catch(error) {
      res.status(500).send(error.message);
    }
  }
}

module.exports = {
  create: UserController.create,
  getActive: UserController.getActive,
}

我可以看到日志返回,但是响应是这样的:

[
    {}
]

2 个答案:

答案 0 :(得分:0)

如果您的请求来自Ajax表单,则必须使用操作而不是控制器。也许您可以尝试.json({user:user})。我对帆也很陌生,我已经遇到了一些奇怪的错误和帆事^^。也许会奏效,让我知道。

答案 1 :(得分:0)

如果您使用的是Mac,并且文件已被复制,则可能有一些隐藏的属性弄乱了您的逻辑。我搜寻了一个类似的问题数小时,但最终对我有用的是删除受影响的模型并手动键入代码。这对我来说还没有意义,但是可以,也许有人知道发生了什么事可以解释