ファイルを読み取り、応答をブラウザーに送り返す際に、以下のエラーが表示されます。エラー:ファイルの読み取り中にヘッダーを送信した後にヘッダーを設定できません。
[ 'Error: Can\'t set headers after they are sent.',
' at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:344:11)',
' at ServerResponse.setWriteHeadHeaders (/somepath/node_modules/on-headers/index.js:82:19)',
' at ServerResponse.writeHead (/somepath/node_modules/on-headers/index.js:41:36)',
' at /somepath/server/custom.js:71:13',
' at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3)' ]
var fs = require('fs');
exports.customPageChatStatus = function(req, res) {
\t if(req.params._pagename === 'Test123')
\t {
\t \t fs.readFile("/somepath/Test123.txt", 'utf-8', function(err, data) {
\t if (err) console.log(err);
\t res.writeHead(200, {'Content-Type':'text/plain', 'Access-Control-Allow-Origin':'*' });
\t res.end(data);
\t \t });
\t }
\t if(req.params._pagename === 'SecondFile')
\t {
\t \t fs.readFile("/somepath/SecondFile.txt", 'utf-8', function(err, data) {
\t if (err) console.log(err);
\t res.writeHead(200, {'Content-Type':'text/plain', 'Access-Control-Allow-Origin':'*' });
\t res.end(data);
\t \t });
\t }
\t else {
\t \t fs.readFile("/somepath/InActive.txt", 'utf-8', function(err, data) {
\t res.writeHead(200, {'Content-Type':'text/plain', 'Access-Control-Allow-Origin':'*' });
\t res.end(data);
\t \t });
\t }
};
興味深いことに、私は "SecondFile.txt" を読んだとき、第一のファイル(Test123.txt)と無問題を読んだときにのみ、上記のエラーを見ています。
この問題を解決するお手伝いをお願いします。ここ
すでにres.end()を実行し、私はそれがページ名と一致した場合にのみ、一度だけブロックを実行するための条件を使用しましたもう一度 –
それを呼び出すときに、このエラーがocuuredされます要求で受け取った。私はそれが2回または複数回実行されているかわからない。 – dragonfly163