koa
Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。
//类似于http。包装过的http对象
const koa=require('koa')
//创建http服务器,监听请求
const app=new koa()
//监听当前机器的地址,端口
app.use((ctx,next)=>{
ctx.body='hello koa';
})
app.listen(80)
//热重载 supervisor npm i -g supervisor supervisor app就可以使用了
//客户端发请求到看到内容
context 对象
每一次请求都会包装一个 context 对象
该对象对 node 的 request 和 response 对象进行了封装(加强了node中的request和response)
同时提供了其他一些有用的 api
koa 会把 context 传入到中间件函数的第一个参数中
可以对context进行扩展,并在中间件中使用
//类似于http。包装过的http对象
const koa=require('koa')
//创建http服务器,监听请求
const app=new koa()
//监听当前机器的地址,端口
//use注册中间件函数
app.use((ctx,next)=>{
//ctx经过koa处理过的对象
console.log(1)
let n=Math.random()
ctx.state.n=n
ctx.body='hello koa
';
// ctx.throw('404','页面没有',{a:1})
console.log(ctx.request)
next()
})
//app.use(async (ctx,next)=>{
app.use((ctx,next)=>{
//ctx经过koa处理过的对象
//async异步
console.log(ctx.state.n)
ctx.body+='hello2 koa';
console.log(4)
//await debugger.findeone()
// ctw.throw() 抛错
next()
})
// app.use((ctx,next)=>{
// throw new Error()
// })
app.on('error',err=>{
console.log('错误 ',err);
})
app.listen(80)
//热重载 supervisor npm i -g supervisor supervisor app就可以使用了
//客户端发请求到看到内容 服务器接收请求-->外理请求,生成数据--发送数据
/**koa request ->middleware ->response
* koa处理了request response 我们需要是注册中间件
* Application
*
*
*
*/
//类似于http。包装过的http对象
const koa=require('koa')
const koaStaticCache = require('koa-static-cache')
//创建http服务器,监听请求
const app=new koa()
//监听当前机器的地址,端口
//use注册中间件函数 有请求,通过staticCache进行处理
app.use(koaStaticCache(__dirname+'/static',{
dir:__dirname+'/static',
prefix:'/public' //如果当前请求的url是以public开始,刚作为静态资源
}))
app.use((ctx,next)=>{
})
app.listen(80)
//热重载 supervisor npm i -g supervisor supervisor app就可以使用了
//客户端发请求到看到内容 服务器接收请求-->外理请求,生成数据--发送数据
/**koa request ->middleware ->response
* koa处理了request response 我们需要是注册中间件
* Application
*
*
*
*/
路由
require(‘koa-router’)
npm i koa-router
koa-router:路由
//类似于http。包装过的http对象
const koa=require('koa')
const koaStaticCache = require('koa-static-cache')
//创建http服务器,监听请求
const app=new koa()
//监听当前机器的地址,端口
const Router = require('koa-router')
const router = new Router()
//use注册中间件函数 有请求,通过staticCache进行处理
app.use(koaStaticCache(__dirname+'/static',{
dir:__dirname+'/static',
prefix:'/public' //如果当前请求的url是以public开始,刚作为静态资源
}))
// app.use((ctx,next)=>{
// console.log(ctx.URL)
// })
router.get('/',(ctx,next)=>{
ctx.body="hi"
})
//子路由
const itemRouter = new Router({
prefix:'/item'
})
// itemRouter.get('/',(ctx,next)=>{
// ctx.body="首页"
// })
// itemRouter.get('/',(ctx,next)=>{
// ctx.body="地址"
// })
itemRouter.get('/add',(ctx,next)=>{
ctx.body="地址"
})
// router.use('/user',itemRouter.routes())
//把路由对象挂到app对象中
app.use(router.routes())
app.use(itemRouter.routes())
app.listen(80)
//热重载 supervisor npm i -g supervisor supervisor app就可以使用了
//客户端发请求到看到内容 服务器接收请求-->外理请求,生成数据--发送数据
/**koa request ->middleware ->response
* koa处理了request response 我们需要是注册中间件
* Application
*
*
*
*/
koa-router:路由
koa-swig:模板引擎
安装使用
npm i koa-swig
const Swig = require(‘koa-swig’)
const render = Swig(options)
加载 co 模块
koa v2.x 需要使用 co 函数
npm i co
const co = require(‘co’)
koa-swig:模板引擎
把渲染方法挂载到 Context 下
app.context.render = co.wrap( render(opts) ) opts:
后端渲染模板 todolist
链接:https://pan.baidu.com/s/1j1U31bNCnsa7gTneo9H7Rw
提取码:klxh
复制这段内容后打开百度网盘手机App,操作更方便哦
运行 node app 或者是supervisor app
前端渲染模板
链接:https://pan.baidu.com/s/1VHmJxibcCI4b4h7xO3nOJQ
提取码:52uh
运行 node app 或者是supervisor app
http://127.0.0.1/static/index.html