我有读取文件“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 文件。
提前致谢!
按照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
接受的答案确实是准确的;然而,值得注意的是,有些人可能会带着在 Web 上下文中发送和执行 JavaScript 代码的目的来到这里。这可以通过将脚本标签与所需的 JavaScript 代码一起嵌入来完成,如下所示:
res.send(`
<script>
console.log('Hello world');
</script>
`);
通过在响应中包含此代码,当在 Web 浏览器中处理响应时,您可以在客户端有效执行 JavaScript。