(1). 安装模块(koa-bodyparser)
lixin-macbook:koa-example lixin$ cnpm install koa-views --save
lixin-macbook:koa-example lixin$ cnpm install ejs --save
lixin-macbook:koa-example lixin$ cnpm install koa-bodyparser --save
(2). 创建模板目录
lixin-macbook:koa-example lixin$ mkdir views
(3). 创建ejs模板文件(views/login.ejs)
views/login.ejs
<html>
<head>
<meta charset="utf-8" />
<title>ejs hello world</title>
</head>
<body>
<form action="/doLogin" method="post">
用户名: <input type="text" name="username" />
密码: <input type="password" name="password" />
<button type="submit">提交</button>
</form>
</body>
</html>
(4). app.js
// 引入koa
const Koa = require("koa");
// 引入koa-router
const Router = require('koa-router');
// 引入koa-views
const views = require('koa-views');
// 引入 koa-bodyparser
const bodyParser = require('koa-bodyparser');
// 创建Koa实例
const app = new Koa();
// 创建Router实例
const router = new Router();
// 配置模板所在的路径,以及所使用的模板引擎
const render = views(__dirname + '/views', {extension:'ejs'} );
// 配置登录页面
router.get("/login",async (ctx,next) => {
await ctx.render("login");
});
// 配置登录操作
router.post("/doLogin",async (ctx,next) => {
// ctx.request.body 获得的就是POST数据(JSON格式)
ctx.body = ctx.request.body;
});
// 配置第三方中间件
app
.use(bodyParser()) // 配置koa-bodyparser
.use(render) // 配置ejs中间件
.use(router.routes())
.use(router.allowedMethods());
// 监听端口
app.listen(8080);
(5). 运行
lixin-macbook:koa-example lixin$ node app.js
(6). 测试