2017-07-28 5 views
1

私は郵便配達員からの投稿要求を作成すると、リクエストデータはサーバーでしたが、サーバーレスポンスすなわちステータスコードとjsonオブジェクトは郵便配達員に送信されませんでした。しばらくしてから、サーバーからの応答を得ることができないと言います。は、郵便配達員を使ってexpress.jsサーバーから応答を得ることができませんでした

はここtodo.saveの実行中に何らかのエラーが発生しモンゴによるエラー投げが何であるかをチェックするためにconsole.log(e)をんです私のserver.jsクラス

var bodyParser = require('body-parser'); 
var express = require('express'); 

var {mongoose} = require('./db/mongoose'); 
var {Todo} = require('./models/todo'); 
var {Users} = require('./models/Users'); 

var app = express(); 
app.use(bodyParser.json()); 

app.post('/todos', (req, res) =>{ 
var todo = new Todo({ 
text: req.body.text 
}); 

todo.save().then((doc) => { 
res.send(doc); 
}, (e) => { 
res.status(400).send(e); 
}); 

}); 

app.listen(3000,() =>{ 
console.log('started at port 3000'); 
}); 
+0

どのようなリクエストをしましたか? – Paul

+0

'.catch(err => res.send(err))'を 'todo.save()'に追加します。おそらく例外を投げているので、約束を解決することはできません。 –

+0

このコードは正常に動作しているはずです... –

答えて

0

です。 res.status(400).send(e);res.send(e)と書くのではなく、何が起きているのかを確認するだけで、応答にエラーを送信することができ、応答としてエラーが送信されます。 「応答を受け取れませんでした」というエラーは、通常、サーバーからの応答を送信していないときに発生します。あなたのケースでは、あなたのエラーブロックからではなくあなたのPromise解決ブロックからの応答を送信しています。

また、todo.save()は約束を返しますか?あなたがこれを達成することができるかもしれない

todo.save(function(err,doc){ 
if(err){ 
return res.send(err); 
} 
res.send(doc); 
}) 
+0

これは郵便受けのコンソールにこのエラーを出しました。エラー:ECONNRESET – malik

+0

を読む私は上記のコードを使用しています。エラー "ソケットがハングアップ" – malik

関連する問題