首页 > 解决方案 > 当我编写简单的服务器,并想提供静态网站时,为什么我不必像下面的示例中那样使用 utf-8 编码?

问题描述

为什么当我提供 utf-8 编码时结果相同,而当我忽略它时结果相同?

const http = require('http')
const path = require('path')
const fs = require('fs')

const server = http.createServer((req, res) => {

    if (req.url === '/') {
        fs.readFile(path.join(__dirname, 'public', 'index.html'), 'utf-8', (err, data) => {
            if (err) throw err
            res.writeHead(200, {'Content-Type': 'text/html'})
            res.end(data)
        })
    }
})

const PORT = process.env.PORT || 5000

server.listen(PORT, () => console.log('Listening on port ', PORT))

标签: javascriptnode.js

解决方案


如果您省略编码,那么您将获得原始缓冲区而不是字符串。(请参阅文档)。

end 方法可以传递原始缓冲区或字符串。


推荐阅读