node.js setEncoding 问题

标签 node.js

如果我在未注释“setEncoding”行的情况下运行下面的代码,我会收到以下错误:

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

res.setEncoding('utf8');

    ^

TypeError: Object # has no method '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);

最佳答案

http.ServerResponse没有 setEncoding 方法。您试图设置 header “字符集”,但“字符集”是“内容类型” header 的一部分。试试这个:

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

请记住,这只是为客户提供的有关如何解释内容的信息,而不是规则。

关于node.js setEncoding 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11925593/

相关文章:

javascript - Sequelize 没有使用日期创建正确的查询

mongodb - 可靠地重新连接到 MongoDB

python - 为什么选择 react 器模式(Twisted、Gevent、Node.js 等)

javascript - 如何正确使用基于 Javascript Promise 的函数

javascript - 使用 Angular 将文件复制到服务器

javascript - 如何使用 GraphQL 处理 long Int?

node.js - Codeigniter 还是 Node js?

node.js - 当不同的服务都命名为 'server.js' 时,如何识别它们?

node.js - Node js - 发送基本电子邮件时的发送网格问题

node.js - 如何从 Nodejs 应用程序连接到 Heroku 上的 PostgresQL?