Node.js 节点_模块中ExpressJS的脚本路径

Node.js 节点_模块中ExpressJS的脚本路径,node.js,express,Node.js,Express,我的“视图”文件夹中有一个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') 我的routes文件夹中有index.js和路由器: router.get('/', function(req,

我的“视图”文件夹中有一个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')
我的routes文件夹中有index.js和路由器:

router.get('/', function(req, res) {
  res.render('index', { title: 'title goes here' })
});
当我尝试访问控制台中jade文件中的node_modules文件夹时,我不断收到404错误:
GET/node\u modules/some\u package/package\u script.min.js 404 1ms-19b

文件路径是如何工作的/当我试图访问node_模块中的脚本时,如何为Express修复它?我是否需要复制必要的javascript文件,并将它们放在“public”下的“javascripts”文件夹中,这样它才能工作


谢谢

哇!等一下
node_modules
是一个私有目录,不应公开。默认情况下,
public
目录是静态文件的公共根路径:

app.use(express.static(path.join(__dirname, 'public')));
其中有一个
javascripts
目录。将脚本复制到那里,并将模板中的
src
属性更改为:

/javascripts/package_script.min.js
如果您真的想提供
节点单元模块
,这是一个坏主意,请在
应用程序下面添加以下内容。使用(express.static(…)上面的行:

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

您确定这是相对于
index.jade的文件的正确路径吗?回答得很好。我有一种直觉,觉得有什么不对劲。感谢您澄清node_modules是一个私有目录,一个大禁忌!如果这个答案能够触及如何让引导sass节点_模块文件干净地提供给gulp,那就太好了,也就是说,我真的不太愿意做编程到gulp任务中的一次性复制,将文件复制到src文件夹中,这样每次重新编译时,gulp任务都可以获取这些文件,我不认为我应该习惯于手动将文件复制出node_模块,那么我如何避免仅仅为了中间人而使用bower呢?手动将它们复制到src/或者是否有更好的gulp方式来访问节点_模块,或者通过gulp向引导sass提供哪些api调用?相关帖子,似乎每个人都会从gulp中使用节点_模块现在我希望看到最后一个命令在,例如,如果我只想包括某些节点模块文件而不包括其他文件,该怎么办。