为什么当我尝试将数据发送到控制器时,它会向我返回错误?

时间:2018-12-31 06:58:44

标签: node.js sails.js

我有一个模型(User.js)和一个控制器(UserController.js),并在blueprints.js中设置了“ ations:true”,我在UserController中也有一个名为“ datos”的函数

我使用邮递员发送一个json对象:

{
    "nombre": "Alexkin",
    "apellido": "Skywalker",
    "correo": "alexkin2@mail.com",
    "password": "123"
}

此网址:localhost:1337/user/datos

这是我的代码:

User.js

module.exports = {

    attributes: {
        nombre:
        {
            type: 'string',
            required: true
        },
        apellido:
        {
            type: 'string',
            required: true
        },
        correo:
        {
            type: 'string',
            required: true,
            unique: true,
            isEmail: true
        },
        password:
        {
            type: 'string'
        },
    },
};

UserController.js

module.exports = {
    datos: function (req,res)
    {
        usuario = req.allParams();
        User.findOrCreate(usuario)
        .exec(async(err, user, wasCreated)=> {
            if (err) { return res.serverError(err); }

            if(wasCreated) {
                sails.log('Created a new user: ' + user.nombre);
            }
            else {
                sails.log('Found existing user: ' + user.nombre);
            }
       });
    }
};

我期望在数据库中创建一个不存在的用户,但最后我收到一条错误消息:

  

错误:正在发送500(“服务器错误”)响应:UsageError:无效   新记录的初始数据。详细信息:缺少必需的值   属性nombre。需要一个字符串,但是得到了:未定义   [?]参见https://sailsjs.com/support以获得帮助...

2 个答案:

答案 0 :(得分:0)

将邮递员中的内容类型设置为application / json。然后将json粘贴到“原始”标签中。

答案 1 :(得分:0)

我找到了答案,问题是在版本小于1.0的版本中,您必须发送一个对象[Model.findOrCreate(data)],而在版本大于1.0的版本中,您必须发送两个对象[Model.findOrCreate (查找数据)] ...