3.3.11 • Published 4 years ago

egg20191125 v3.3.11

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago
> > > 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过期' } } } } }