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

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

作者: kyuan | 来源:发表于2019-02-11 23:34 被阅读15次

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

讨论中间件之前,我们先做一个快速试验,之前创建的 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'));

相关文章

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

    这节课讨论如何伺服静态文件与中间件 讨论中间件之前,我们先做一个快速试验,之前创建的 index.ejs 视图文件...

  • 8KOA 静态文件

    静态文件 使用 koa-static 中间件实现静态文件访问 安装中间件 使用中间件 使用 koa-mount 自...

  • 静态文件、中间件、分页

    1.静态文件的使用 1.1 动态生成静态文件的url地址,代码如下 2.中间件 中间件函数是 django 框架给...

  • 【翻译】Node.js 教程 —— 文件模块

    这节课我们会用 fs 文件模块来读写文件,Node.js 为我们提供了读写文件的能力。要使用这个能力我们需要引入其...

  • nodejs编码规范

    felixge / node-style-guide翻译:Node.JS编码规范指南教程

  • Django - 05-Django高级

    [toc] 1 静态文件 2 中间件 2.1 概述 2.2 方法 2.3 自定义中间件 3 上传图片 3.1 概述...

  • Express 静态文件访问 express.static

    图片,CSS样式文件JavaScript文件以及其他静态文件的服务,是通过Express内置的中间件"expres...

  • Nginx入门

    Nginx的中间件架构 静态资源web服务image.png 静态资源文件:非服务器动态生成的文件(通过名称可以直...

  • Django高级使用

    一、静态文件 配置settings.py 使用 二、中间件 应用场景 中间件方法 备注: 为什么会返回HttpRe...

  • express的初步使用

    引入express 创建服务 静态资源文件的处理 middleware中间件 中间件的本质就是一个函数. 执行任何...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/ldhqeqtx.html