当使用Koa框架时,如果你发现每次发送状态码404(Not Found)都出现问题,可能是由于以下几个原因: 基础概念 HTTP状态码404:表示服务器无法找到请求的资源。 Koa:一个基于Node.js的轻量级Web框架,使用ES6的async函数,去除了回调地狱,使得错误处理更加优雅。 可能的原因及解决方案...
当使用Koa框架时,如果你发现每次发送状态码404(Not Found)都出现问题,可能是由于以下几个原因: 基础概念 HTTP状态码404:表示服务器无法找到请求的资源。 Koa:一个基于Node.js的轻量级Web框架,使用ES6的async函数,去除了回调地狱,使得错误处理更加优雅。
GEThttp://localhost:3000/public/bundle.js404 (Not Found) 目录结构如下: app server.js public bundle.js 以下是server.js 'use strict'constkoa =require('koa')constrender =require('koa-ejs')constpath =require('path')constlogger =require('koa-logger')constserve =require('koa-static')letrouter...
=='GET')return// 如果ctx.body有值了,或者status不是404,说明请求已经被其他中间件处理过了,就直接返回了if(ctx.body!=null|| ctx.status!==404)return// eslint-disable-line// koa-static自己的逻辑还是一样的,
我们看到koa-static导出的是一个方法serve,这个方法运行后返回的应该是一个Koa中间件,这样Koa才能引用他,所以我们先来写一下这个结构吧: module.exports = serve; // 导出的是serve方法 // serve接受两个参数 // 第一个参数是路径地址 // 第二个是配置选项 ...
注意上面这个路径请求的是/test.jpg,前面并没有public,说明koa-static对请求路径进行了判断,发现是文件就映射到服务器的public目录下面,这样可以防止外部使用者探知服务器目录结构。 手写源码 返回的是一个Koa中间件 我们看到koa-static导出的是一个方法serve,这个方法运行后返回的应该是一个Koa中间件,这样Koa才能引用...
response.body = 'Page Not Found'; }; 3.处理错误的中间件 为了方便处理错误,最好使用try...catch将其捕获。但是,为每个中间件都写try...catch太麻烦,我们可以让最外层的中间件,负责所有中间件的错误处理。 const handler = async (ctx, next) => { try { await next(); } catch (err) { ctx....
打开浏览器,访问 http://127.0.0.1:3000 。你会看到页面显示"Not Found",表示没有发现任何内容。这是因为我们并没有告诉 Koa 应该显示什么内容。 1.2 Context 对象 Koa 提供一个 Context 对象,表示一次对话的上下文(包括 HTTP 请求和 HTTP 回复)。通过加工这个对象,就可以控制返回给用户的内容。
打开浏览器,访问 http://127.0.0.1:3000 。你会看到页面显示"Not Found",表示没有发现任何内容。这是因为我们并没有告诉 Koa 应该显示什么内容。 1.2 Context 对象 Koa 提供一个 Context 对象,表示一次对话的上下文(包括 HTTP 请求和 HTTP 回复)。通过加工这个对象,就可以控制返回给用户的内容。
` ctx.body = html } else if (ctx.url === '/' && ctx.method === 'POST') { // 当POST请求的时候,中间件koa-bodyparser解析POST表单里的数据,并显示出来 ctx.body = ctx.request.body } else { // 404 ctx.body = '404 Not Found' }})app.listen(3000)运行程...