王志远,微医前端技术部
前言
next项目不仅可以单独运行,同样可以作为 koa 中间件使用,大致流程是如果
- 请求发起
- koa可以处理则 koa 直接返回请求结果
- 如果 koa 不能处理,则交给 next 进行处理。
绘制成流程图如下
我们来看下具体实现
具体实现
安装依赖
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"
},
启动命令后就可以正常访问了