博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Koa框架的一些随记
阅读量:6803 次
发布时间:2019-06-26

本文共 1676 字,大约阅读时间需要 5 分钟。

Koa 提供一个 Context 对象,表示一次对话的上下文(包括 HTTP 请求和 HTTP 回复)。通过加工这个对象,就可以控制返回给用户的内容。

Context.response.body属性就是发送给用户的内容。

 

模块可以将多个中间件合成为一个

例子:

const compose = require('koa-compose'); const logger = (ctx, next) => { console.log(`${Date.now()} ${ctx.request.method} ${ctx.request.url}`); next(); } const main = ctx => { ctx.response.body = 'Hello World'; }; const middlewares = compose([logger, main]); app.use(middlewares); Koa2 路由的前缀
var router = new Router({  prefix: '/users'});router.get('/', ...); // responds to "/users"router.get('/:id', ...); // responds to "/users/:id"
异步处理写法
app.use(async (ctx, next) => {    await next();    ctx.response.type = 'text/html';    ctx.response.body = '

Hello, koa2!

';});
Koa框架的路由和Get/Post请求的处理方法。 例子(一个简单的登陆逻辑)
const Koa = require('koa');const router = require('koa-router')();const bodyParser = require('koa-bodyparser');const app = new Koa(); router.get('/', async (ctx, next) => {    ctx.response.body = `

Index

Name:

Password:

`;}); router.post('/signin', async (ctx, next) => { console.log('look',ctx.request.body); var name = ctx.request.body.name || '', password = ctx.request.body.password || ''; console.log(`signin with name: ${name}, password: ${password}`); if (name === 'koa' && password === '12345') { ctx.response.body = `

Welcome, ${name}!

`; } else { ctx.response.body = `

Login failed!

Try again

`; }}); app.use(bodyParser());app.use(router.routes());app.listen(3000);console.log(`app started at port 3000...`);

 类似的,put、delete、head请求也可以由router处理。

 

转载于:https://www.cnblogs.com/Marinnn/p/9435376.html

你可能感兴趣的文章
后退时保存表单状态
查看>>
Python简介
查看>>
泛函编程(13)-无穷数据流-Infinite Stream
查看>>
XML与HTML
查看>>
find grep wc awk sed sort uniq split指令详解
查看>>
绩效管理功能扩展包
查看>>
#pragma的用法
查看>>
[jvm]体系结构 内存模型
查看>>
网站优化必须了解的三个基础知识
查看>>
Java 和Php 接口
查看>>
Samba文件共享服务
查看>>
Web开发模式【实例篇】MVC--迈向标准开发
查看>>
查看binlog文件的2种方式
查看>>
新人程序员如何脱颖而出
查看>>
网络工程师真的也需要好好学习linux系统
查看>>
Entangle 2.0 “Sodium”正式发布
查看>>
Redis之父表示ARM服务器没戏!
查看>>
java调用cmd命令并捕获执行结果字符串的代码
查看>>
Eclipse中android sdk升级ADT版本过低解决办法
查看>>
MDT 2013 从入门到精通之无法分析或处理pass[specialize]文件
查看>>