首页 > 解决方案 > 为什么当我尝试向我的控制器发送数据时它返回一个错误?

问题描述

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

使用 Postman 我发送一个 json 对象:

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

到这个网址:localhost:1337/user/datos

这是我的代码:

用户.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'
        },
    },
};

用户控制器.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。期望一个字符串,但得到: undefined [?] 请参阅https://sailsjs.com/support以获取帮助...

标签: node.jssails.js

解决方案


将 postman 中的 content-type 设置为 application/json。然后将 json 粘贴到“原始”选项卡中。


推荐阅读