2016-10-28 3 views
1

リクエストとして文字列値を送信すると、req.body値はオブジェクトになります。私が使用しています:

を私は工場cust1_service.postQueryを持っている:ここでは

.factory('cust1_service', function($http){ 
    return { 
     postQuery : function(request){ 
      console.log('cust1 req : ' + request); 
      console.log('typeof request : ' + typeof request); 
      var config = {'Content-Type' : 'text/plain'}; 
      return $http.post('/cust1', request); 
     } 
    } 

は、私は私のコントローラに工場を呼び出す方法です:

cust1_service.postQuery(req_string).success(handleSuccess); 

私も(bodyParser.textを使用しています)私のルートの前に

var express = require('express'), 
config = require('./config/config'),  
bodyParser = require('body-parser'),  
api = require('./app/routes/api.js');    

var app = express(); 

app.use(bodyParser.text({ 
    type: "text/*"    
}));        

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

require('./app/routes/api.js')(app, db); 

app.listen(config.port, function() {  
    console.log('Listening on ' + config.port); 
}) 

ので....私は、ルーティングAPIを取得するとき

app.route('/cust1') 
    .post(function(req,res){ 
      console.log('this is req.body : ' + req.body); 

req.bodyは[オブジェクトオブジェクト]です...私は間違ってテキストタイプとしてリクエストを送信していますか? req.bodyが文字列である必要があります。

答えて

1

req.bodyにまだJSONオブジェクトとして渡されているかどうかを確かめてください。 "stringify" console.log('this is req.body : ', req.body, ' --- ');

BodyParserミドルウェアの使用を完全に削除することができます。本文を強制的にテキストにする必要があります。 SO次の行を削除するかコメントアウトする必要があります。

app.use(bodyParser.text({ type: "text/*"})) 

あなたは密接に関連して質問here.

で見ることができ、私はこのことができます願っています。

関連する問題