Node搭建静态资源服务器

起步

mime 获取文件类型

npm init -y
npm i mime koa

app.js

/* 
1. 获取请求资源路径
2. 判断是否存在
3. 获取请求资源类型,设置http 响应头
4. 在http响应头 body 中返回 */
const Koa = require('koa');
const app = new Koa();
const path = require('path');
const fs = require('fs');
const mime = require('mime');
const root = path.resolve('.');

app.use(async (ctx, next) => {
    if (ctx.path.startsWith('/static/')) {
        let requestPath = ctx.path;
        let filePath = path.join(root,requestPath);
        if (fs.existsSync(filePath)) {
            ctx.response.status == 200
            ctx.response.set('Content-Type',mime.getType(requestPath)) // 设置正确的文件类型,否则返回的文件后缀有问题
            // 文件需要下载时启用此字段
            // ctx.response.set('Content-Disposition','attachment') 
            ctx.response.body = fs.createReadStream(filePath)
        } else {
            ctx.response.status == 404
        }
    }
});

app.listen(3000);
console.log('app started at port 3000...');

http 文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值