javascript - Express.js 路线组织

标签 javascript node.js express routes code-organization

当我设置一些路线时,我通常会这样做:

app.get('/x', function(req, res) {
res.sendFile(path.join(__dirname + '/public/.../index.html'));});

这样做的问题是,如果您的路由文件夹中有 JS 或 CSS,则无法托管它们。

很多时候我只是添加

app.get('/public/.../js/index.js', function(req, res) {res.sendFile (__dirname + '/public/.../js/index.js');});
app.get('/public/.../css/style.css', function(req, res) {res.sendFile (__dirname + '/public/.../css/style.css');});

就在路由下方,以使 JS 和 CSS 可访问。

我已经使用快速静态托管库

app.use('/lib', express.static('lib'));

但这对于 Route 文件夹 (/public/.../js) 中的 JS 和 CSS 来说是不可能的

  • Is There a better Way to organize my files that are in the route folders ?

最佳答案

您可以使用虚拟路径,保留当前的目录结构,添加以下路由,您可以引用 ./public 子目录下带有/static 前缀的所有静态文件:

app.use('/static', express.static('public'))

例如您可以引用http://your_server/static/public/.../js/index.js请注意,在这种情况下/public 下的所有文件都可能通过/static 前缀访问,因此您不应该在那里有服务器代码或服务器配置。

为了清楚起见,理想情况下,您应该托管并引用具有类型子文件夹(例如/static/js、/static/css)的一个根文件夹中的所有静态文件:

app.use('/static', express.static('static'))

关于javascript - Express.js 路线组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40390533/

相关文章:

javascript - 基本 Mocha TDD 接口(interface)

javascript - 为什么 window.scrollY !== document.body.clientHeight @最大滚动点

javascript - 使用 NodeJs 获取桌面文件图标

node.js - Websocket 连接错误 : Does not return a 101 changing protocal when using from different path

javascript - 为什么 req.body 不断返回空对象?

javascript - angularjs ng-显示 : Hide Sign-in option after successful login

javascript - 如何在解析前取消/忽略 AngularJS 异步验证检查?

node.js - Shopify API如何生成发票、运输标签和运输 list ?

node.js - 使用node.js实现车辆的连续跟踪并找到最近的车辆

javascript - 在 node.js Express 中找不到文件