只需cv,实战中学习next | koa集成next作为中间件

196 阅读1分钟

王志远,微医前端技术部

前言

next项目不仅可以单独运行,同样可以作为 koa 中间件使用,大致流程是如果

  • 请求发起
  • koa可以处理则 koa 直接返回请求结果
  • 如果 koa 不能处理,则交给 next 进行处理。

绘制成流程图如下

image.png

我们来看下具体实现

具体实现

安装依赖

yarn add koa@2.11.0 koa-router@7.4.0

实现逻辑

新建client\index.js文件,实现【将请求交由 next 处理】逻辑,具体如下

let Koa = require('koa');
let Router = require('koa-router');
const next = require('next');
const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handler = app.getRequestHandler();
app.prepare().then(() => {
    const server = new Koa();
    let router = new Router();
    server.use(router.routes());
    server.use(async (ctx, next) => {
        await handler(ctx.req, ctx.res);
        ctx.response = false;
    });
    server.listen(3000, () => console.log('server started at port 3000'));
});

配置启动命令

在package.json中配置脚本

"scripts": {
	"client": "nodemon client"
},

启动命令后就可以正常访问了