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