javascript - 如何从 Express 路由提供脚本文件
问题描述
我有一个 js 脚本,我想将它包含在我的 html 文件的 src 属性中。当我直接从本地路径添加脚本时,它正在工作。
是否可以从快速路由返回文件路径并将该路由用作我的 html 中 src 的值?这就是我想在 html 中包含我的快速路由的方式
<script src="http://localhost:2222/widget" type="text/javascript"></script>
Express 服务器在端口 2222 上运行并且有一些 api。现在在我的快速路线/小部件中
app.get("/widget", (req, res) => {
res.send(path.join(__dirname + "/src/client/public/bundle.js"));
});
当我简单地触发 localhost:2222/widget 时,会显示从 /home/... 开始的正确路径
我需要一些机制来将此 js 文件路径用作 src(如上所示)。
注意:我已经为访问控制添加了所有的 cors、headers 等。
解决方案
用于res.sendFile()
发送文件而不是路径:
传输给定的文件
path
。Content-Type
根据文件名的扩展名设置响应 HTTP 标头字段。除非在选项对象中设置了 root 选项,path
否则必须是文件的绝对路径。
因此,您的代码变为:
app.get("/widget", (req, res) => {
res.sendFile(path.join(__dirname, "/src/client/public/bundle.js"), err => console.log(err));
});
由于您正在使用path.join()
,您可以用逗号分隔__dirname
相对路径。
推荐阅读
- c++ - Valgrind 在动态分配指针数组时检测到内存泄漏
- python - 如何使用 python 在两个文件中找到匹配的 DNA 序列?
- java - 为什么Java的Double Metaphone只给出四个字母代码?
- sql - Oracle Live SQL:ORA-00907:缺少右括号 -
- scala - 播放框架 scala 项目
- css - Visual Studio 中的 CSS 表与浏览器中的 CSS 表不匹配
- python - Patsy 和 Pandas 之间的标准化结果不同 - Python
- java - Netbeans 12.0 未在 java 类中显示错误和属性颜色
- gradle - 调用gradle脚本时如何自动运行任务
- python - Python Websockets 接收原始字节