const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();
const views = require('koa-views');
const json = require('koa-json');
const onerror = require('koa-onerror');
const bodyparser = require('koa-bodyparser');
const path = require('path');
const logger = require('koa-logger'); const request = require('request'); // error handler
onerror(app) // middlewares
app.use(bodyparser())
.use(json())
.use(logger())
.use(require('koa-static')(__dirname + '/public'))
.use(views(path.join(__dirname, '/views'), {
options: { settings: { views: path.join(__dirname, 'views') } },
map: { 'html': 'nunjucks' },
extension: 'html'
}))
.use(router.routes())
.use(router.allowedMethods()) // x-response-time app.use(async function(ctx, next) {
const start = new Date();
await next();
const ms = new Date() - start;
ctx.set('X-Response-Time', `${ms}ms`);
}); // logger app.use(async function(ctx, next) {
const start = new Date();
await next();
const ms = new Date() - start;
console.log(`${ctx.method} ${ctx.url} - ${ms}`);
}); app.on('error', (err, ctx) =>
log.error('server error', err, ctx)
); router.get('/', async(ctx, next) => { var bd = "bd";
// 从服务器获取数据 bd = await getData();
ctx.state = {
title: 'Koa2',
name: bd
}
// 发送到页面
return await ctx.render('index', ctx.state) })
//获取服务器数据
async function getData(){
return new Promise((resolve,reject)=>{
request("https://www.baidu.com",(error,response,body)=>{
if(error){
reject("error")
}else{
resolve("thank you");//body
}
})
})
} router.get('/b', async(ctx, next) => {
ctx.state = {
title: 'Koa2',
name: '小明-list'
}
await ctx.render('b', ctx.state)
}) app.listen(3000);
console.log('listen http://localhost:3000');

最新文章

  1. 手把手教你玩转nginx负载均衡(五)----配置后端服务器组
  2. Caliburn.Micro学习笔记(五)----协同IResult
  3. Lucene.net应用
  4. mysql grant命令错误:ERROR 1044 (42000): Access denied for 'root' With All Privileges
  5. C#定时执行一个操作
  6. BZOJ-1800 飞行棋 数学+乱搞
  7. ASP.NET- 查找Repeater控件中嵌套的控件
  8. 一道面试题与Java位操作 和 BitSet 库的使用
  9. 安装开源项目 MultiType (基于 RecyclerView)出现的各种问题 -- 自己的第一篇博客
  10. 我的Python成长之路---第四天---Python基础(15)---2016年1月23日(寒风刺骨)
  11. Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作
  12. 关于select count
  13. 使用base64提升视觉效果体验
  14. iOS绘制坐标图,折线图-Swift
  15. LINUX介绍
  16. web自动化测试---概述
  17. aop(Aspect Oriented Programming)面向切面编程
  18. pyqt5的使用目录
  19. Android qualcomm WCNSS_qcom_cfg.ini 参数介绍
  20. python 变量名的规范

热门文章

  1. TensorFlow学习笔记 补充2—— 生成特殊张量
  2. JDK1.9环境变量配置
  3. CentOS设置程序开机自启动的方法
  4. Redis源码之String操作
  5. mongo views
  6. VA使用技巧
  7. 如何将webbrowser控件的Cookie倒入CookieContainer供WebRequest使用
  8. 迁移TFS 2012服务至新的电脑硬件
  9. Strategy模式
  10. deepin linux下python安装mysqldb