2017-02-02 11 views
0

json要素の配列に項目を追加しようとする場合を除いて、すべてのリクエストは完全に機能しますが、毎回undefinedが返されます。NodeJS POSTの結果は定義されていません

コントローラー:他のすべてが正常に動作として

vm.addOptie = function() { 
     var newOptie = {"optie": 'stuur',"prijs": 150}; 
     $http({ 
      method: 'post', 
      url: 'http://localhost:3000/addGekozenOptie', 
      headers: { 
       'Content-Type': 'application/json' 
      }, 
      data: newOptie 
     }).then(function (gekozenOpties) { 
      vm.gekozenOpties = gekozenOpties.data; 
     }).catch(function (err) { 
      alert('Er is een fout opgetreden: ' + err); 
     }) 
    } 

と私のルータ/ index.js

var router = require('express').Router(); 
var gekozenOpties = require('../public/data/opties.json'); 

router.post('/addGekozenOptie', function (req, res) { 
    var op = req.body; 
    gekozenOpties.push(op); 
    res.json(gekozenOpties); 
}); 

module.exports = router; 

非常にイライラが見て(削除/取得します)。

+0

'gekozenOpties.data'は' undefined'ですか?それは明確ではありません – RaR

+0

@RaR request.bodyはルータで未定義を返します – Laurens

+0

あなたは( 'body-parser')を必要としましたか? – user2263572

答えて

2

あなたは次のことを試しましたか?

//install body-parser 
npm install body-parser 



//Sample code within your app 
var express = require('express') 
var bodyParser = require('body-parser') 

var app = express() 

// create application/json parser 
var jsonParser = bodyParser.json() 

// create application/x-www-form-urlencoded parser 
var urlencodedParser = bodyParser.urlencoded({ extended: false }) 

// POST /login gets urlencoded bodies 
app.post('/login', urlencodedParser, function (req, res) { 
    if (!req.body) return res.sendStatus(400) 
    res.send('welcome, ' + req.body.username) 
}) 

bodyParserオブジェクトは、ミドルウェアを作成するために、様々な工場を露出させます。 すべてのミドルウェアは、req.bodyプロパティに解析された の本文、または解析対象のボディがない場合は空のオブジェクト({})(または エラーが返された)を入力します。

+0

これはトリックでした、ありがとうございます。 nodejs/angularとその役に立たないエラーメッセージを待つことができません。 – Laurens

関連する問題