包含js文件的Node.js错误 - 无法找到文件

时间:2016-03-14 17:24:03

标签: javascript html node.js

我正在运行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.

3 个答案:

答案 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这样的工具来收集你的代码并将它放入一个文件中,然后可以在网络浏览器中使用。