ExpressJS在node_modules中的脚本path

我在我的'views'文件夹中有一个index.jade。

doctype html html head title= title link(rel='stylesheet', href='/stylesheets/main.css') script(src='../node_modules/some_package/package_script.min.js') 

我有我的路由文件夹中的路由器index.js:

 router.get('/', function(req, res) { res.render('index', { title: 'title goes here' }) }); 

当我尝试访问控制台中的jade文件中的node_modules文件夹时,我总是收到404错误: GET /node_modules/some_package/package_script.min.js 404 1ms - 19b

文件path究竟如何工作/当我试图访问node_modules中的脚本时,如何修复它? 我是否需要复制必要的JavaScript文件,并将它们置于“公共”下的“javascripts”文件夹中以便其正常工作?

谢谢!

哇! 坚持… node_modules是一个私人目录,不应该公开。 默认情况下, public目录是静态文件的公共根path:

 app.use(express.static(path.join(__dirname, 'public'))); 

在那里有一个javascripts目录。 复制您的脚本并将模板中的src属性更改为:

 /javascripts/package_script.min.js 

如果你真的想提供node_modules ,这是一个坏主意,添加下面的app.use(express.static(...)); 上面的行:

 app.use(express.static(path.join(__dirname, 'node_modules')));