node_modules中ExpressJS的脚本路径

Bry*_*yan 13 node.js express

我的'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')
Run Code Online (Sandbox Code Playgroud)

我在路由文件夹中有一个带路由器的index.js:

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

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

当我尝试访问node_modules中的脚本时,文件路径的确切工作方式/如何为Express修复它?我是否需要复制必要的javascript文件并将它们放在'public'下的'javascripts'文件夹下才能使用?

谢谢!

a_a*_*ias 17

哇!Hold on ... node_modules是一个私人目录,不应公开.默认情况下,该public目录是静态文件的公共根路径:

app.use(express.static(path.join(__dirname, 'public')));
Run Code Online (Sandbox Code Playgroud)

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

/javascripts/package_script.min.js
Run Code Online (Sandbox Code Playgroud)

如果您真的想要提供服务node_modules,这将是一个坏主意,请在app.use(express.static(...));上面的行下方添加以下内容:

app.use(express.static(path.join(__dirname, 'node_modules')));
Run Code Online (Sandbox Code Playgroud)