2016-05-15 11 views
0

Ich bin neu in NodeJS und Express.js lesen, die derzeit die folgenden Fehler von Express.js bekommen:Express.js POST-Fehler: Typeerror: kann Eigenschaft ‚Name‘ undefinierter

TypeError: Cannot read property 'name' of undefined 
at C:\Users\jitheshlive\IdeaProjects\nodejs-express-start\server.js:37:31 
at callbacks (C:\Users\jitheshlive\IdeaProjects\nodejs-express-start\node_modules\express\lib\router\index.js:161:37) 
at param (C:\Users\jitheshlive\IdeaProjects\nodejs-express-start\node_modules\express\lib\router\index.js:135:11) 
at pass (C:\Users\jitheshlive\IdeaProjects\nodejs-express-start\node_modules\express\lib\router\index.js:142:5) 
at Router._dispatch (C:\Users\jitheshlive\IdeaProjects\nodejs-express-start\node_modules\express\lib\router\index.js:170:5) 
at Object.router (C:\Users\jitheshlive\IdeaProjects\nodejs-express-start\node_modules\express\lib\router\index.js:33:10) 
at next (C:\Users\jitheshlive\IdeaProjects\nodejs-express-start\node_modules\express\node_modules\connect\lib\proto.js:199:15) 
at C:\Users\jitheshlive\IdeaProjects\nodejs-express-start\node_modules\body-parser\lib\read.js:107:5 
at IncomingMessage.onEnd (C:\Users\jitheshlive\IdeaProjects\nodejs-express-start\node_modules\body-parser\node_modules\raw-body\index.js:136:7) 
at IncomingMessage.g (events.js:260:16) 

Mein Express.js Code ist wie folgt:

app.configure(function(){ 

app.use(express.logger()); 

app.use(express.static(__dirname + '/app')); 

app.use(bodyParser.json()); 

app.engine('html',engines.underscore); 
/* 
Set views direcoctory. DO NOT set this with the static directory!. 
*/ 
app.set('views', __dirname+'/app/views'); 
app.set('view engine', 'html'); 

app.set('PORT',config.server.port); 
}); 

app.get("/", function(req,res){ 
res.render('index'); 
}); 

app.post("/webservice-1.0/rest/student/add/", function(req,res){ 
    console.log(req.param.student.name); 
    console.log(req.param.student.address); 
//res.render('index'); 
}); 

Ich benutze AngularJS in der Benutzeroberfläche, um die Daten zu übermitteln. Mein AngularJS Controller ist wie folgt:

mainApp.controller("addStudentController", function($scope,$http) { 
var resData = {}; 
$scope.output = ""; 
var url = "/webservice-1.0/rest/student/add/"; 
$scope.addStudent = function(){ 
    $http.post(url, $scope.student) 
    .success(function(data, status, headers, config) { 
     resData = angular.fromJson(data); 
     $scope.output = "Student entered successfully with unique Id "+resData.id; 
    }).error(function(data, status, headers, config) { 
     resStatus = status; 
     $scope.output = "Something went wrong. Please try again later." 
    }); 
} 
}); 

Antwort

0

Das bedeutet, dass es keine req.param.student.name ist. Um zu sehen, was von der Client-Seite auf die Server-Seite kommt, einfach tun:

console.log(req.body)

Sie die Daten mit dem Wunsch Körper senden, nicht params.

Dann würde so etwas wie req.body.data.name oder req.body.data.student.name funktionieren.

+0

Danke Mann. req.body.data.name hat für mich funktioniert. –

Verwandte Themen