egg20191125
v3.3.11
Published
``` > > > Node ``` >>Node app.mockLog([logger]) and app.expectLog(str[, logger]), app.notExpectLog(str[, logger]) Assert some string value in the logger instance. It is recommended to pair app.mockLog() with app.expectLog() or app.notExpectLog(). Usi
Downloads
4
Readme
> > > Node
Node app.mockLog([logger]) and app.expectLog(str[, logger]), app.notExpectLog(str[, logger]) Assert some string value in the logger instance. It is recommended to pair app.mockLog() with app.expectLog() or app.notExpectLog(). Using app.expectLog() or app.notExpectLog() alone requires dependency on the write speed of the log. When the server disk is high IO, unstable results will occur.
###You can also create a cancel token by passing an executor function to the CancelToken constructor:
// login >> jiaoyan
async log(){
let {ctx,service}=this;
let {username,password}=ctx.request.body;
let errors = this.app.validator.validate({username:'string',password:'email'},ctx.request.body)
console.log("errors",errors)
if(errors.length>0){
ctx.body={
code:1,
msg:"jiaoyan"
}
}else{
ctx.body={
code:0,
msg:"success"
}
}
}
// same of up
async del(){
let {ctx,service}=this;
let {id}=ctx.query;
if(id){
let token = ctx.request.header.token
let info = jwt.c=verify(token,'1705b')
if(info.roleid===1){
try{
ctx.body={
code:1,
msg:"error"
}
}catch(e){
ctx.body={
code:0,
msg:e
}
}
}
}
}
You can cancel a request using a cancel token.
The axios cancel token API is based on the withdrawn cancelable promises proposal.
You can create a cancel token using the CancelToken.source factory as shown below:
{
axios.post('/list',{username:name,pwd:pwd},{headers:{token:data}}).then(res=>{})
axios.get(`/list ?username=${name}&pwd=${pwd}`,{headers:{token:data}}).then(res=>{})
axios.get(/list,{params:{username,pwd},headers:{'egg-identity':'admin'}}).then(res=>{})
}
aa
Using application/x-www-form-urlencoded format
By default, axios serializes JavaScript objects to JSON. To send data in the application/x-www-form-urlencoded ### format instead, you can use one of the following options.
Browser In a browser, you can use the URLSearchParams API as follows:
NOTE ###The qs library is preferable if you need to stringify nested objects, as the querystring method has known issues with that use case (https://github.com/nodejs/node-v0.x-archive/issues/1665).
Semver ###Until axios reaches a 1.0 release, breaking changes will be released with a new minor version. For example 0.5.1, and 0.5.4 will have the same API, but 0.6.0 will have breaking changes.
// middleware > qx
module.exports = () => { return async(ctx, next) => { let whitePath = ['/api/getList']; try { if (whitePath.includes(ctx.request.path)) { await next() } else { let { eggidentity } = ctx.request.header; if (eggidentity === 'admin') { await next() } else { ctx.body = { msg: 'no quanxian', status: 401, code: 1 } // await next() } } } catch (error) { ctx.body = { code: 11, msg: error.message } } } }
> > >
> > >
Node
// middleware>authentication
const jwt = require('jsonwebtoken')
module.exports=()=>{
return async (ctx,next)=>{
let arr = ['api/login','api/registry']
if(arr.includes (ctx.request.path)){
await next()
}else{
let token = ctx.requset.header.token;
try {
let info = jwt.verify(token,'1705b')
ctx.info = info
} catch (e) {
ctx.body = {
code:0,
msg:'token过期'
}
}
}
}
}