2012-08-12 96 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