首页 > 解决方案 > Sails.js 响应不返回对象字段

问题描述

您好,我是新来的风帆,希望得到一些帮助。我正在使用带有sails-mongo适配器的sails,并且在我的控制器上当我查询数据时它返回正常并且我可以很好地记录数据但是当我试图返回响应时对象是空的。我尝试过不同类型的 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,
}

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

[
    {}
]

标签: javascriptmongodbsails.jshttpresponsesails-mongo

解决方案


如果您的请求来自 Ajax 表单,则必须使用 Action 而不是 Controller。也许您可以尝试 .json({user: user}) 。我也是风帆新手,我已经在风帆中遇到了一些奇怪的错误和事情^^。也许它会起作用,让我知道。


推荐阅读