2016-04-19 5 views
1

Ich bin mit sailsjs arbeiten, und ich verwende Postbote i Post senden versuchen, (http://localhost:1337/user?name=plz)(http://localhost:1337/user?name=plz)(http://localhost:1337/user?name=plz) , aber ich bin immer Fehler:Sailsjs: Typeerror: Kann nicht 'name' lesen Eigenschaft undefined

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"); 

        } 

       }); 
    } 
}; 

routes.js

'post /user': 'UserController.create' 

user.js (Modell)

module.exports = { 

    attributes: { 
     //_id:'p1', 
     name:'STRING' 
    } 
}; 

Antwort

0

req.body.name Unter der Annahme, richtig formatierte Daten zurückgibt, dann würden Sie param statt param.name verwenden möchten, weil Sie die name Eigenschaft direkt an die Variable param Einstellung sind.

dies also tun:

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

ich es bereits verwenden, aber es zurückgeben json {name: null} – letseasy

+0

console.log (req.body) gibt null zurück? – user1027620

+0

es ist nicht zurück ({}) – letseasy

0

Verwendung req.params.all(); oder verwenden Sie die Post-Methode im Postboten und Ihre URL wird http://localhost:1337/user/create?name=xyz sein.

Ich hoffe, dass es Ihr Problem

module.exports = lösen {

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"); 

       } 

      }); 
} 

};

0

Sie haben "name" mit Post-Anforderung zu übergeben, wie Post Mann post man request

Verwandte Themen