Sailsjs:TypeError:无法读取属性'name'的未定义

Sailsjs: TypeError: Cannot read property 'name' of undefined

本文关键字:未定义 name 属性 TypeError 读取 Sailsjs      更新时间:2023-09-26

我正在使用sailsjs,我使用我尝试发送的poster来投递(http://localhost:1337/user?name=plz)(http://localhost:1337/user?name=plz)(http://localhost:1337/user?name=plz)但我得到了错误:

 TypeError: Cannot read property 'name' of undefined
at Object.module.exports.create (C:'Users'achraf'Desktop'crud'cruds'api'controllers'UserController.js:13:29)
at wrapper (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'lodash'index.js:3095:19)
at routeTargetFnWrapper (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'lib'router'bind.js:176:5)
at callbacks (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'express'lib'router'index.js:164:37)
at param (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'express'lib'router'index.js:138:11)
at pass (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'express'lib'router'index.js:145:5)
at nextRoute (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'express'lib'router'index.js:100:7)
at callbacks (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'express'lib'router'index.js:167:11)
at alwaysAllow (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'lib'hooks'policies'index.js:158:11)
at routeTargetFnWrapper (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'lib'router'bind.js:176:5)
at callbacks (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'express'lib'router'index.js:164:37)
at param (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'express'lib'router'index.js:138:11)
at pass (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'express'lib'router'index.js:145:5)
at nextRoute (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'express'lib'router'index.js:100:7)
at callbacks (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'node_modules'express'lib'router'index.js:167:11)
at module.exports (C:'Users'achraf'AppData'Roaming'npm'node_modules'sails'lib'hooks'cors'clear-headers.js:14:3) [TypeError: Cannot read property 'name' of undefined]

UserController.js

module.exports = {
        create:function(req,res){
                var param = req.body.name;
                User.create({name :param.name}).exec(function(err,user){
                        //console.log(success);
                    if(err){
                        res.send("Error:Sorry!Something went Wrong");
                    }else{
                        return res.redirect("/user");
                    }
                });
    }   
};

路由.js

'post /user':   'UserController.create'

User.js(模型)

module.exports = {
  attributes: {
        //_id:'p1',
        name:'STRING'
  }
};

假设req.body.name返回格式正确的数据,则您希望使用param而不是param.name,因为您将name属性直接设置为param变量。

这样做:

var param = req.body.name;
User.create({name : param}).exec(function(err,user){

使用req.params.all();或者在poster中使用post方法,您的url将是http://localhost:1337/user/create?name=xyz.

我希望它能解决你的问题

module.exports={

    create:function(req,res){
            var param = req.params.all();
            User.create({name :param.name}).exec(function(err,user){
                    //console.log(success);
                if(err){
                    res.send("Error:Sorry!Something went Wrong");
                }else{
                    return res.redirect("/user");
                }
            });
}   

};

您必须使用post请求传递"name",作为post-man-post-man-request