4

「setEncoding」行のコメントを外して以下のコードを実行すると、次のエラーが表示されます。

/usr/local/test-server/test.js:78

res.setEncoding('utf8');

    ^

TypeError: オブジェクト # にはメソッド 'setEncoding' がありません

その行がなければ、宣言されていない文字エンコーディングについて不平を言うブラウザーを除いて、すべてが期待どおりに機能します。

ドキュメント、SO、GitHubの問題リスト、または広範なグーグルには、有用なものは何も見つかりませんでした。node.js のバージョンは最新です: 0.8.6

var https = require('https');
var sslPrivateKey = fs.readFileSync('./pk.pem');
var sslCert = fs.readFileSync('./cert.pem');
var sslOpts = { key: sslPrivateKey, cert: sslCert };

var server = https.createServer(sslOpts, function(req, res) {

    if ('GET' === req.method) {

        res.writeHead(200, {'Content-Type': 'text/plain','charset': 'utf8'});
        //res.setEncoding('utf8');
        res.write('You are here' + "\n");
        res.end();

    } 

}

server.listen(8080);
4

2 に答える 2

8

クラスhttp.ServerResponseには setEncoding メソッドがありません。ヘッダー「charset」を設定しようとしていますが、「charset」は「Content-Type」ヘッダーの一部です。これを試して:

res.writeHead(200, {'Content-Type': 'text/plain; charset=utf8'});

これは、ルールではなく、コンテンツの解釈方法に関するクライアント向けの単なる情報であることを忘れないでください。

于 2012-08-12T20:39:09.377 に答える