当前位置: 代码迷 >> 综合 >> nodejs 模板引擎nunjucks使用
  详细解决方案

nodejs 模板引擎nunjucks使用

热度:88   发布时间:2023-10-17 06:54:22.0

使用nunjucks实现登录功能

1、server.js

const Koa = require("koa");  
const nunjucks = require("nunjucks");
const views = require("koa-views");
const Router = require('koa-router');
const parser = require('koa-parser');const app = new Koa();
const router = new Router();// 解决post请求
app.use(parser());
// 配置模板引擎
app.use(views(__dirname + '/views', {//将使用nunjucks模板引擎渲染以html为后缀的文件。map: { html: 'nunjucks' } 
}));
// 配置路由
app.use(router.routes());app.use(async ctx => {//render方法渲染模板,第二个参数可以给模板传递参数await ctx.render("index",{title:"我的第一个模板"}) 
})router.get('/', async (ctx, next) => {await ctx.render('index',{title:"这是我的第一个模板引擎页面"})
});router.get('/form', async (ctx, next) => {await ctx.render('form')
});router.post('/data', async ctx => {console.log('dsfasf', ctx.request.body);let username = ctx.request.body.username;let password = ctx.request.body.password;if (username === 'admin' && password === '123456') {await ctx.render('success', { username });} else {await ctx.render('err');}
});app.listen(3000, () => {console.log("server is running");
}) 

2、form.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><form action="/data" method="POST"><label for="username">用户名:</label><input type="text" name="username"><label for="password">密码:</label><input type="password" name="password"><input type="submit" value="提交"></form>
</body></html>

3、success.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><h1>欢迎回来{
   {username}}</h1>
</body></html>

4、err.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><h1>登录失败!</h1>
</body></html>