我正在运行node.js服务器。在我需要的节点中,使用
运行模块var h = require('h.js');
h.hello();
这会将Hello World打印到控制台。但是,我希望能够在浏览器中从页面(entrypage.html)运行h.js中的代码。我尝试通过
导入它<script type="text/javascript" src="/node_modules/h.js"></script>
但是,在localhost上运行时会出现404错误。
GET http://localhost:8080/node_modules/h.js
如何在HTML页面上访问此javascript文件?
我的文件结构有一个带有html /,js /,node_modules /和server.js的根。 HTML页面位于html /,node_modules /
中的js文件编辑:我正在使用MEAN堆栈 - MongoDB,Express.js,Angular.js和Node.js.
答案 0 :(得分:1)
应该可以使用express.static
(示例:app.use('/node_modules/', express.static(__dirname + '/node_modules/'));
)来提供文件,但我强烈建议不要在前端提供node_modules和后端特定文件!
答案 1 :(得分:1)
首先定义静态资源的路径,即CSS,JS,图像等。
app.use(express.static(path.join(__dirname, 'node_modules')));
然后在html中
<script type="text/javascript" src="h.js"></script>
注意: 尽量避免将 node_modules 文件夹用于静态资源的源路径
答案 2 :(得分:0)
说实话,我不确定你要实现的目标,我认为你想在浏览器中运行代码,就像在node.js环境中使用{{1}}运行代码一样包括来自npm的h.js包。
如果这就是你想要做的事情,我建议你使用像browserify或webpack这样的工具来收集你的代码并将它放入一个文件中,然后可以在网络浏览器中使用。