logo头像
Snippet 博客主题

3 koa 搭建项目

本文于619天之前发表,文中内容可能已经过时。

创建项目

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 #mongodb 中间件
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/

code
https://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
}
}

支付宝打赏 微信打赏

打赏