2016-03-24 4 views
0

node.js restifyを使用しています。適切なhttpポストレスポンスを復元するにはどうすればよいですか?

私はこのようなHTTP Postハンドラを持っています。私はres.send("ok");行を削除する場合

var api_post_records = function (app, url_path) { 
    function post_handler(req, res, next) { 
    //code runs here 
    res.send("ok"); //have to run some response back, otherwise python http post requests will hang 
    app.post(url_path, post_handler); 
} 

は、それはPythonのHTTP POST要求がハングアップします。どうしてか分かりません。誰かが答えを提供できることを願っています。私はいくつかのダミーのHTTPレスポンスを送信して、Pythonリクエストをハングしないようにする必要があります。現在のコードは動作しますが、HTTPポストがうまく動作すれば、適切なHTTPレスポンスがどうなるべきかを知りたいと思います。

答えて

1

私は何かが欠けていない限り、これはかなり標準化されていないコードです。また、これはPythonとは関係ありません。レスポンスを送信するものとしてres.send()メソッドをコメントアウトすると、どのリクエストも失敗するはずです。あなたはnext()を呼び出すことも忘れています。また、なぜpost_handler内にpost_handlerを再帰的に登録していますか?

これはあなたのコードがどのように構成されるか、一般的である:

var restify = require('restify'); 
var server = restify.createServer(); 

var post_handler = function(req, res, next){ 
    res.send('ok'); 
    next(); 
} 

server.post(url_path, post_handler); 

server.listen(8000); 
+0

私は 'res.send( 'OK')を送信することができます;'や 'res.send( 'XXX何か');'。適切な応答はどのように見えますか? – user781486

+1

@ user781486適切な応答は、あなたのPythonコードリクエストに返すものです。言い換えれば、最初にあなたのノードアプリケーションからあなたのPythonアプリケーションに到達しようとしていた情報です。 「適切」とは、JSONからXMLやテキストなど、多くのことを意味します。 – HeadCode

関連する問題