# next作为koa的中间件
koa中间件机制可以看 深入理解 Koa2 中间件机制
# 安装koa 和 koa-router
yarn add koa koa-router
1
# 新建一个server.js
const Koa = require("koa")
const Router = require("koa-router")
const next = require("next")
const dev = process.env.NODE_ENV !== "production"
const app = next({ dev })
const handle = app.getRequestHandler()
app.prepare().then(() => {
const server = new Koa();
const router = new Router();
server.use(router.routes())
server.use(async (ctx, next) => {
await handle(ctx.req, ctx.res);
ctx.respond = false;
})
server.listen(3000, () => {
console.log("koa serve 启动 3000")
})
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
修改package.json中的 scripts 为:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "node server.js",
"mon": "nodemon server.js",
"build": "next build",
}
1
2
3
4
5
6
2
3
4
5
6
这样next就作为koa的中间件使用了,那么koa的强大功能,和next的同构功能我们就都可以使用了
执行 yarn dev显示页面同原来一样