質問

を使用 表現node.js) どうして応答した後、コールバック?

以下は最小限の例です。 posix.cat ある機能を返します約束 up なのに結果を送信したいことをしています。

require.paths.unshift('lib');
require('express');
var posix = require('posix');

get('/', function () {
    function up(s) {
        return s.toUpperCase();
    }
    return posix.cat('/etc/motd').addCallback(up);
});

run(3001);

トのない取得します。

この変動に関す:

get('/2', function () {
    var myRequest = this;
    function up(s) {
        myRequest.respond(s.toUpperCase());
    }
    return posix.cat('/etc/motd').addCallback(up);
});

もののギャップの問題が指摘されている衝突べ

[object Object].emitSuccess (node.js:283:15)
[object Object].<anonymous> (node.js:695:21)
[object Object].emitSuccess (node.js:283:15)
node.js:552:29
node.js:1027:1
node.js:1031:1
役に立ちましたか?

解決

による この, の問題にアプローチ#2 respond したが呼び出される前に呼び出され、ステータスコードを設定しました。

この作品:

get('/2', function () {
    var myRequest = this;
    function up(s) {
        myRequest.halt(200, s.toUpperCase());
    }
    return posix.cat('/etc/motd').addCallback(up);
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top