2012-08-12 105 views
3

如果我用 「setEncoding」 行運行下面的代碼註釋掉,我收到以下錯誤:node.js的setEncoding問題

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

res.setEncoding('utf8'); 

    ^

類型錯誤:對象#有沒有方法「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); 

回答

6

http.ServerResponse沒有setEncoding方法。您嘗試設置標題'charset',但'charset'是'Content-Type'標題的一部分。試試這個:

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

請記住,這僅僅是客戶關於如何解釋內容的信息,而不是規則。

+0

就是這樣。謝謝。 – 2012-08-12 20:44:12