nodejs学习针对koa以及express的简单对比学习
nodejs对于前端而言并不陌生,现在闲暇之余,尝试学习一下!针对express与koa对比简单学习,koa是express原班人马开发出来的新框架,在用法上跟express对比学习会比较快,下面定一个简单的需求,用express与koa各搭建一个服务,写出两个接口,一个是post,一个是get,并且实现可跨域哦,而且还要有一个拥有可访问静态资源(新建一个html文件,可访问),需求明确就可以开干了……
1.nodejs环境搭建
2.建一个文件夹,在里面npm init,初始化出一个package.json文件。
接下来进入正题:
express服务搭建
1.npm install express --save
2. npm install body-parser --save (该依赖是用来解析post请求的)
**
var Express = require('express');
var app = new Express();
var bp = require('body-parser');
// static实现静态资源访问
app.use(Express.static(__dirname + '/'));
app.use(bp.json());
app.use(bp.urlencoded({extended: false}));
// 允许跨域请求
app.all('*', (req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By",'3.2.1')
if(req.method=="OPTIONS") {
res.send(200);
} else {
next();
}
});
app.get('/test', (req, res)=>{
res.send(req.query)
});
app.post('/test', (req, res)=>{
res.send(req.body);
});
app.listen(3001);
**
代码应该很容易看懂,引入两个依赖,一个是body-parser,一个是express
koa服务搭建
- npm install koa --save
- npm install koa-router --save
- npm install koa-static --save
- npm install koa-bodyparser --save
const Koa = require('koa');
const app = new Koa();
const path = require('path');
const static = require('koa-static');
const router = require('koa-router')();
const bodyParser = require('koa-bodyparser');
app.use(bodyParser());
app.use(router.routes());
app.use(router.allowedMethods());
// 设置静态路径
const staticPath = './';
app.use(static(path.join(__dirname, staticPath)));
// 实现跨域
router.all('/test', (ctx, next) => {
ctx.set('Access-Control-Allow-Origin', '*');
ctx.set('Access-Control-Allow-Headers', 'Content-Type,Content-Length, Authorization, Accept,X-Requested-With');
ctx.set('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
ctx.set('X-Powered-By', '3.2.1');
next();
});
router.post('/test', (ctx) => {
console.log(ctx.request.body);
ctx.body = ctx.request.body;
});
router.get('/test', (ctx) => {
ctx.body = ctx.request.query;
});
app.listen(3000);
不做过多解释,接下来看一下package.json里面的东西
接下来新建一个html文件去测试
大致的文件就这么多,看者自行测试