创建项目 1 2 3 4 5 6 7 8 mkidr server npm init npm init npm i koa koa-logger koa-session koa-bodyparser koa-router mongoose sha1 lodash uuid xss bluebird speakeasy --save
1 2 3 4 5 6 koa-logger koa-session cookie koa-bodyParser koa-router mongoose sha1
创建 index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 var koa = require('koa' ); var logger = require('koa-logger' ); var session = require('koa-session' ); var bodyParser = require('koa-bodyparser' ); var app = koa(); app.keys = ['server' ]; // cookie session 加密key app.use(logger()); app.use(session(app)); app.use(bodyParser()); app.use(function *(next){ console.log(this.href); console.log(this.method); this.body = { success : true } yield next; }); app.listen('1234' ); console.log('http://localhost:1234/' )
命令行
1 2 3 node index.js 在浏览器中访问 http://localhost:1234/
codehttps://github.com/kylinhuang/APIServer 提交 #koa #创建项目
router 添加
index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 var koa = require('koa' ); var logger = require('koa-logger' ); var session = require('koa-session' ); var bodyParser = require('koa-bodyparser' ); var app = koa(); app.keys = ['server' ]; // cookie session 加密key app.use(logger()); app.use(session(app)); app.use(bodyParser()); var router = require('./config/routes' )(); app.use(router.routes()) .use(router.allowedMethods()); // app.use(function *(next){ // console.log(this.href); // console.log(this.method); // this.body = { // success : true // } // yield next; // }); app.listen('1234' ); console.log('http://localhost:1234/' )
routes.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 var Router = require('koa-router' ); var User = require('../app/controllers/user' ); var App = require('../app/controllers/app' ); module.exports = function () { var router = new Router({ prefix:'/api/1' }); // router.post('/api/i/u/signup' ,User.signup); router.post('/u/signup' ,User.signup); router.post('/u/verify' ,User.verify); router.post('/u/update' ,User.update); router.post('/signature' ,App.signature); return router ; };
user.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 exports.signup = function *(next) { this.body = { success : true } } exports.verify = function *(next) { this.body = { success : true } } exports.update = function *(next) { this.body = { success : true } }