繁体   English   中英

Express 在路由器内提供静态文件

[英]Express serve static files inside Router

我目前正在研究一个nodejs项目,我有一个简单的问题。 我想将node_modules文件夹中的一些库静态地提供给客户端(可能很愚蠢,但与问题无关),但我不想将我的主服务器 JS 文件与所有这些静态提供的文件一起node_modules 如下所示:

const express = require('express');
const app = express();

// Imports here
app.use('/assets/lib/bootstrap', './node_modules/bootstrap/dist');
app.use('/assets/lib/axios', './node_modules/axios/dist');
app.use('/assets/lib/aos', './node_modules/aos/dist');

app.listen(3000, () => {
  console.log('Server listening on port 3000');
});

如果我有 10 个以上的导入,这会破坏我的 Server JS 文件,我希望尽可能保持干净。 我想知道为什么这个选项不起作用:

./routes/route1.js

const express = require('express');
const router = express.Router();
const path = require('path');

// Imports here
router.use('/bootstrap', path.resolve(__dirname, 'node_modules/aos/dist'));
router.use('/axios', path.resolve(__dirname, 'node_modules/aos/dist'));
router.use('/aos', path.resolve(__dirname, 'node_modules/aos/dist'));

// path to node_modules file is not the problem here

module.exports = router

在我的主服务器 JS 文件中:

const express = require('express');
const app = express();
const route1 = require('./routes/route1');

// Imports here
app.use('/assets/lib', route1); 

app.listen(3000, () => {
  console.log('Server listening on port 3000');
});

但这给了我一个错误。 该文件不是静态提供给客户端的。 这是因为快速路由器不能提供静态文件吗? 也许这是一个新手错误,但任何帮助表示赞赏。 第一个代码片段确实有效,但我正在努力使我的代码井井有条。

在 route1.js 文件中使用 express.static 中间件,而不是简单地将文件夹路径字符串传递给路由。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM