在sails.js中创建新记录

时间:2018-04-07 12:30:58

标签: node.js sails.js

我想创建新记录,但我收到错误:

TypeError: User.create(...).fetch is not a function  

我的UserController.js

create: async function(req,res,next){
await User.create({
    username: req.param('username'),
    password: 654654,
    type: 1,
  })
    .fetch()
    .then(function (new_user)
    {
      return res.ok({'user':new_user});
    })
    .catch(function (err) {
      if(err){
        console.log(err);
        return res.serverError({'err':err});
      }
    });
}  

我的另一个问题是如何在Model.create(...)上验证参数并生成自定义错误消息?

我使用sails-hook-validation但是不工作!!!!
我使用风帆v 1.0

谢谢

2 个答案:

答案 0 :(得分:1)

您的UserController应该是这样的:

create: async function(req,res,next)
        {

              try{
                  let new_user = await User.create({
                  username: req.param('username'),
                  password: 654654,
                  type: 1
                  })
                  .fetch();
                  return res.ok({'user':new_user});
              }
              catch(err)
              {
                 console.log(err);
                 return res.serverError({'err':err});
              }

        }  

答案 1 :(得分:1)

mongoose架构上的create方法有一个回调

它的第一个参数是错误(如果有的话),第二个是创建的对象(这里是用户)

await User.create({
    username: req.param('username'),
    password: 654654,
    type: 1,
}, (err, user) => {
     //Use this instead of fetch
})