Qimingweikun 2020-01-28
请求应该包含URL、HTTP方法、请求体等。
URL使用名词,尽量使用复数;
URL使用嵌套表示关联关系,如/users/12/repos/5;
使用正确的方法:GET/POST/PUT/DELETE。
如果是分页,应该包含当前页数和每一页的数量:分页 page=2&per_page=100;
状态码:2开头正确 3表示重定向 4表示客户端错误 5代表服务端错误;
错误处理:返回错误信息。
HTTPS
鉴权
限流:在HTTP头加上了字段记录请求次数,如果超过规定的额度就会报403的错误。
npm init cnpm i koa --save
新建index.js
const Koa = require(‘koa‘);
const app = new Koa();
?
app.use(()=>{
console.log("Hello world");
})
?
app.listen(3000);运行node index.js,打开http://localhost:3000/页面显示Not Found,在终端打印了Hello world。
修改上面的例子为下:
const Koa = require(‘koa‘);
const app = new Koa();
const test = ()=>{
console.log("Hello world");
}
app.use(test);
app.listen(3000);重新运行node index.js,刷新网页,结果还是一样。这里app.use()的内容就是中间件。我们可以使用多个中间件,使用多个中间件的时候我们需要使用next。
const Koa = require(‘koa‘);
const app = new Koa();
?
const test1 = (ctx,next)=>{
console.log("Hello world");
next();
}
?
const test2 = (ctx,next)=>{
console.log("Hello China");
next();
}
?
app.use(test1);
app.use(test2);
?
app.listen(3000);ctx是上下文,next执行下一个中间件。打印结果:
Hello world Hello China
ctx的理解:ctx可以帮助你在多个中间件流转数据。
// 在test1中间件中 ctx.str = ‘Hello world‘; // 在test2中间件中可以读取 console.log(ctx.str);
每次修改完代码又要重新启动很影响效率。
cnpm i nodemon --save-dev
以后运行就直接nodemon+文件名
nodemon index.js
简化命令,在package.json的script新增命令
"start":"nodemon index.js"

运行npm start即可。