私は、メディアのIDを含むXMLの入力を受け取り、与えられたIDの詳細をXML形式で出力するAPIを開発しています。 2番目の同時リクエストの応答を送信しているときに問題に直面しています。ここで2番目のリクエストは、郵便配達員の「積載」を示すループに入ります。nodejsで同時にリクエストを処理し、1つのres.sendだけを使ってレスポンスを渡します。
私がやっているのは、の関数を呼び出してメディアを解析し、コールバックで出力し、res.send
を使って送信しますが、1回の要求に対してのみ機能します。
私はres.send
を使用しているので、同じAPIへの並列要求をループするか、送信後にヘッダーを設定できませんが、res.send
が応答を送信するために使用できる唯一の方法です次は動作しません)。
var getCompositeData = function(req, res, next){
abc.getData(req.body, function(err, xmlOutput){
if(err){
console.log("error");
} else {
xmlData = xmlOutput
return next()
}
}
app.post(apiUrl, [
rawBodyParser({
type: 'application/xml'
}),
app.oauth.authorise()
], getCompositeData, function (req, res) {
res.setHeader('Content-Type', 'application/xml');
res.send(xmlData);
});
少なくともシェア_some_コード、それ以外の私たちはあなたを助けるためにどのようには考えています。 – robertklep
abc.getDataは、データを解析し、xml出力をapp.postに戻す別のnodejsファイルの関数です。 – Priyanka