Node.js Express 如何以 javascript 或其他文件类型发送响应

问题描述 投票:0回答:2

我有读取文件“example.js”并将其发送到客户端的代码。

app.get('/mods/example.js', function(req, res) {
    fs.readFile('./mods/example.js',
            {encoding: 'utf-8'},
            (err, data) => {
        if (!err)
        {
            res.send("var example = new Mod();" + data);
        }
    });
});

问题是如何将响应作为 javascript 文件发送?

当我在网络浏览器中打开文件时,它是一个 html 文件而不是 javascript 文件。

提前致谢!

javascript node.js express response
2个回答
14
投票

按照noisypixy的建议,我使用

res.type
函数来更改对javascript的响应类型。

res.type('.js');
res.send("var john = new Human();");

还有很多其他文件类型,例如

html
json
png

API 参考及示例代码:http://expressjs.com/en/4x/api.html#res.type


0
投票

接受的答案确实是准确的;然而,值得注意的是,有些人可能会带着在 Web 上下文中发送和执行 JavaScript 代码的目的来到这里。这可以通过将脚本标签与所需的 JavaScript 代码一起嵌入来完成,如下所示:

res.send(`
    <script>
        console.log('Hello world');
    </script>
`);

通过在响应中包含此代码,当在 Web 浏览器中处理响应时,您可以在客户端有效执行 JavaScript。

© www.soinside.com 2019 - 2024. All rights reserved.