Open Linda0821 opened 4 years ago
# 初始化package.json npm init # 安装koa2 npm install koa
const Koa = require('koa') const app = new Koa() app.use( async ( ctx ) => { ctx.body = 'hello koa2' }) app.listen(3000) console.log('[demo] start-quick is starting at port 3000')
由于koa2是基于async/await操作中间件,目前node.js 7.x的harmony模式下才能使用,所以启动的时的脚本如下:
node index.js
router.js代码如下:
//index.js const Koa = require('koa') const app = new Koa() const router = require('./routes/router')(); app.use(router.routes()).use(router.allowedMethods()) app.listen(3000, () => { console.log('\[demo\] route-use-middleware is starting at port 3000') })
const Router = require('koa-router') const home = require('./home')(); const page = require('./page')(); const api = require('./api')(); module.exports \= () => { // 装载所有子路由 let router = new Router() router.use('/', home.routes(), home.allowedMethods()) router.use('/page', page.routes(), page.allowedMethods()) router.use('/api', api.routes(), api.allowedMethods()) return router; }
home.js代码如下:
const Router = require('koa-router') module.exports = () => { let home = new Router() // 子路由1 home.get('/', async ( ctx )=>{ let html = ` <ul> <li><a href="/page/helloworld">/page/helloworld</a></li> <li><a href="/page/404">/page/404</a></li><li><a href="/api/settings">/api/settings</a></li> </ul> ` ctx.body = html }) return home; }
page.js代码如下:
const Router = require('koa-router') module.exports = () => { let page = new Router() page.get('/404', async ( ctx )=>{ ctx.body = '404 page!' }) page.get('helloworld', async ( ctx )=>{ ctx.body = 'helloworld page!' }) return page; }
api.js代码如下:
const Router = require('koa-router') const setController = require('../controllers/setController'); module.exports = () => { const api = new Router() api.get('/settings',setController.getSettings) return api; }
setController.js代码如下:
'use strict'; const crypto = require('crypto'); const AES_SECRET = '12e87e58475793133d5bb40c3ae76ca3'; const AES_IV = 'udv93xitfeu6xg8q'; const TAOBAO_SECRET_KEY = 'd34682618b6503641566ae83d971d35d'; exports.getSettings = async (ctx, next) => { let cipher = crypto.createCipheriv('aes-256-cbc', Buffer.from(AES_SECRET), Buffer.from(AES_IV)); let encrypted = cipher.update(TAOBAO_SECRET_KEY); encrypted = Buffer.concat([encrypted, cipher.final()]); ctx.status = 200; ctx.body = { success: true, msg: '', settings: { app_key: '27985254', secret: encrypted.toString('hex'), api:[ { method: 'taobao.tbk.dg.material.optional', adzone_id: 'mm_124732562_33032153_109589700162', desc: '物料搜索' }, { method: 'taobao.tbk.dg.optimus.material', adzone_id: 'mm_124732562_33032153_109589750184', desc: '物料精选' } ] } }; return; }
输入指令 node index.js
以上附链接:
学习 nodejs+mongodb+koa2 写接口(一) 环境布置
学习 nodejs+mongodb+koa2 写接口(二) koa2教程入门
学习 nodejs+mongodb+koa2 写接口(三) mongodb的增删改查
学习 nodejs+mongodb+koa2 写接口(四) 新建用户表,写用户的增删改查接口
一.hello koa
安装koa2
hello world 代码
启动demo
由于koa2是基于async/await操作中间件,目前node.js 7.x的harmony模式下才能使用,所以启动的时的脚本如下:
二.koa2 原生路由实现 和 get请求
router.js代码如下:
router.js代码如下:
home.js代码如下:
page.js代码如下:
api.js代码如下:
setController.js代码如下:
输入指令 node index.js
以上附链接:
学习 nodejs+mongodb+koa2 写接口(一) 环境布置
学习 nodejs+mongodb+koa2 写接口(二) koa2教程入门
学习 nodejs+mongodb+koa2 写接口(三) mongodb的增删改查
学习 nodejs+mongodb+koa2 写接口(四) 新建用户表,写用户的增删改查接口