app.get req.body undefined
Я новичок из стека MEAN, испытывающий проблемы с маршрутами, и, вероятно, анализирую: следующий код возвращает мне req.body: undefined.:
Server.js:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://127.0.0.1/roomem');
var Roomie = require('./public/models/roomie.server.model');
app.use(bodyParser.json());
var roomieRoutes = require('./public/routes/roomie.server.routes');
roomieRoutes(app);
module.exports = app;
app.listen('3000');
Controller.js:
roomem.controller('roomieCtrl', ['$scope', '$http', '$location', '$log', function($scope, $http, $location, $log)
{
$scope.login = function()
{
console.log($scope.person.meta); // This outputs the object correctly
$http.get('/roomielogin',$scope.person.meta).success(function(response)
{
console.log(response); // This returns null
});
}
}]);
roomie.server.route.js:
module.exports = function(app)
{
app.get('/roomielogin', function(req,res)
{
console.log(req.body); // displays undefined
console.log(req.headers); // shows that the document can be json
var name = req.body.username;
var query = Roomie.where({ 'meta.username': name });
query.findOne(function(err, doc) {
if (err) return console.error(err);
console.log(doc);
res.json(doc);
});
});
}
Я попробовал почти все и прочитал каждый пост там об этом. В большинстве случаев люди просто размещают свои app.use(bodyParser.json()); слишком поздно в их сценарии, но моя, кажется, в нужном месте. Все остальные запросы работают правильно. Это единственный проблемный. Я ценю любую помощь.
1 ответ
Вместо того чтобы делать
GET
если вы отправляете данные в теле, вам нужно сделатьPOST
запрос.
Изменить -
$http.get('/roomielogin',$scope.person.meta)
к
$http.post('/roomielogin',$scope.person.meta)
&
app.get('/roomielogin', function(req,res)
к
app.post('/roomielogin', function(req,res)