2015-10-15 45 views
0

我平均疊加福利局遇到問題航線,並推測,解析:下面的代碼讓我一個req.body:未定義:app.get req.body不確定

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());在腳本中太晚了,但我的看起來是在正確的地方。所有其他查詢都正常工作。這是唯一有問題的。我感謝任何幫助。

回答

0

而不是做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)

+0

哈!這工作!那麼爲什麼GET在這種情況下不起作用?謝謝btw! – Nick

+0

嗯,有點工作。控制器成功將數據傳遞給路由。現在的問題是,路由仍然向調用控制器返回空響應。所以一半的問題解決了! – Nick

+0

@Nick這是一個不同的問題 – Nesh