【翻译】Node.js 教程 —— 伺服静态文件与中间件

这节课讨论如何伺服静态文件中间件

讨论中间件之前,我们先做一个快速试验,之前创建的 index.ejs 视图文件里会有外部样式的引用,指向根目录下的 assets, 按理说页面应能正常渲染。

image.png

但启动服务后,在控制台上实际会出现 404 找不到 style.css,为什么会这样?

因为归根结底,这是向服务器发起请求获取 style.css,而我们之前写的程序并没有针对此类静态文件进行响应,这种文件的处理实际跟之前路由部分的处理相似。

我们可以继续按之前的路由处理方式,为不同的静态文件创建处理函数,但更为快捷的方式去伺服这类静态文件

幸运的是,我们可以使用中间件(如 express 内置的中间件),首先我们聊聊什么是中间件

中间件是在请求与响应中间所运行的代码,实际上我们已经在使用中间件:

app.get('/profile/:id', function(req, resp){
    console.log('请求后');

    console.log('中间件代码...');

    console.log('响应前');
    resp.send('request ID is ' + request.params.id);
});

我们将开始使用自定义或者 express 内置提供的中间件来伺服静态文件,不需要像路由那样为每个静态文件逐个添加处理函数。

当请求资源为 /assets,则该中间件会被触发,同样有请求与响应的参数,还有 next 用来告诉 express 可以进入下一个中间件

app.use('/assets', function(req, resp, next){
    console.log(req.url); // 这里可以获取客户端访问的请求,就可以针对文件进行处理
    next();
});

更幸运的是 express 提供了内置中间件 express.static 来处理静态文件,里面的参数则是项目中静态文件所在的目录

var express = require('express');

app.use('/assets', express.static('assets'));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容