本文原创 ,转载请标明出处
1 koa的基本使用
koa是基于node平台的web开发框架
使用koa去创建一个服务器
const Koa = require('koa') // bodyParser 处理post请求 const bodyParser = require('koa-bodyparser') const port = 7001 const app = new Koa() app.use(bodyParser()) app.use(async ctx => { ctx.body = 'hello , i am first koa applicance' }) app.listen(port)
koa 使用 下面方式 利用ctx.body将内容或接口数据返回给到页面
app.use(async ctx => { ctx.body = '' })
下面一个从后台获取数据返回给到页面 的demo(作为中间层)
const Koa = require('koa') // bodyParser 处理post请求 const bodyParser = require('koa-bodyparser') // 用于请求后台数据 当我们想把改服务作为web和后台的中间层时 需要使用request-promise 或者request 当然还有其他的 const request = require('request-promise') const port = 7001 const app = new Koa() app.use(bodyParser()) // 向后台发起请求 let _callApi = (url, datas, headers) => { // 本文以POST请求为例说明,其他方式请参阅request-promise官方文档 let options = { uri: url, method: 'POST', body: datas, json: true, timeout: 10000 } if (headers) { options.headers = headers } return new Promise((resolve, reject) => { request(options) .then(res => { resolve(res) }) .catch(err => { reject(err) }) }) } app.use(async ctx => { ctx.body = 'hello , i am first koa applicance' }) app.use(async ctx => { let queryUrl = ctx.request.url.split('?')[0] if (queryUrl === '/mytest/testpost') { let data = ctx.request.body let response = await _callApi('apiUrl', data) ctx.body = response } }) app.listen(port)
使用 ctx.request 将web端请求的内容拿到,根据自己的需求组装 将内容发送给后台获取接口数据 可以自行打印ctx.request
注意:当在项目中使用session时 需要有配置文件并且给app设置keys
// 存储 内容 const CONFIG = { overwrite: false, maxAge: 7200000 //过期时间设置两个小时 } app.keys = ['myvars is changing'] app.use(session(CONFIG, app)) // 在接口中存数据 ctx.session.username = 'myName' // 在接口中去数据 let userName = ctx.session.username
当然 当我们接口很多时 可以使用koa-router进行路由的定义 ,koa-router支持很多接口方式
router.get('/users', ctx => { // .... }) router.post('/users', ctx => { // .... }) .put('/user/:id', ctx => { // .... }) .del('/user/:id', ctx => { // .... }) .all('/user/:id', ctx => { // .... });
koa-router 引入方式:
const Router = require('koa-router') const router = new Router() //或者下面的方式 const router = require('koa-router')()
2 mongodb 的基本用法
mongodb的安装请参见菜鸟教程:https://www.runoob.com/mongodb/mongodb-window-install.html 或者参见其他
(安装教程不同的是现有的 安装包下载完直接默认了 data和log的存放地址 可以自定义修改)
1.数据库 创建 : use myDbone 查看: db 或 show dbs 2 集合 (相当于mysql的表格) 创建集合:db.createCollection(name, options) options可选 指定内存的大小索引等 详细信息见官网或菜鸟教程 查询结合:show tables 或 show collections 删除几个: db.myColl.drop() 3 文档 (相当于mysql的行) 插入文档:db.myColl.insert({title:‘myFirst’,url:'www.baidu.com'}或者变量名) 查找文档:db.myColl.find() 查找所有 db.myColl.find({title:‘myFirst’}) 更新文档:db.myColl.update({title:myFirst},{$set:{title:'myFirltUpdate'}}) 按条件查找内容并进行替换 删除文档:db.myColl.remove({title:myFirstUpdate}) 删除查找到的内容 db.myColl.remove({}) 删除所有文档
3 koa 连接mongoose 进行增删改查
未完 待续
基于上面的两点说明 下面直接给出demo作为参考
详细代码地址:https://github.com/liangxianh/koa-mongoose.git