Node.js 如何使用正确的mimetype而不是text/plain提供JSON文件?

Node.js 如何使用正确的mimetype而不是text/plain提供JSON文件?,node.js,json,express,nginx,mime-types,Node.js,Json,Express,Nginx,Mime Types,我试图使用manifest.json文件,如果类型未设置为application/json,该文件将拒绝工作 我有一台运行node/express的nginx服务器 我将manifest.json放在我的公用文件夹中,服务器将该类型读取为text/plain,并抛出一个错误 在/etc/nginx/config/下已经有一行内容如下: application/json json; 我甚至尝试使用express提供文件并指定标题: var manifes

我试图使用manifest.json文件,如果类型未设置为application/json,该文件将拒绝工作

我有一台运行node/express的nginx服务器

我将manifest.json放在我的公用文件夹中,服务器将该类型读取为text/plain,并抛出一个错误

/etc/nginx/config/
下已经有一行内容如下:

application/json                      json;
我甚至尝试使用express提供文件并指定标题:

var manifest = fs.readFileSync('routes/manifest.json', 'utf8');
router.get('/manifest.json', function(req, res) {
    res.header("Content-Type", 'application/json');
    res.json(manifest);
});
这仍然可以理解为文本/纯文本


我猜这是我需要用nginx做的事情,但是我找到的所有建议都是关于我没有的文件

当fs模块读取现有manifest.json文件时,它将其转换为一个大的utf-8字符串,而不是实际的json

在人眼看来,它看起来像普通的JSON,但实际上只是字符串中的一堆JSON

对于服务器来说,它只看到字符串,并将mime类型设置为text/plain,因为从技术上讲,它是文本/纯文本

您可以尝试替换
res.json(manifest)带有
res.send(JSON.stringify(manifest)),它应该采用fs从manifest.json获得的值,并尝试将其转换为具有正确mime类型的正确格式的json