egg20191125

3.3.11 • Public • 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(). 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过期'
                }
            }
        }
    }
}

Readme

Keywords

none

Package Sidebar

Install

npm i egg20191125

Weekly Downloads

1

Version

3.3.11

License

MIT

Unpacked Size

9.18 kB

Total Files

6

Last publish

Collaborators

  • maoxingren