Git Product home page Git Product logo

kaikeba-code's Introduction

Node课程代码

课程指南

  • 00 - 预习课
    • 录播:运行调试
    • 录播:Node异步编程
    • 录播:Git基础操作
  • 01 - 基础API
    • 直播: 异步读写、fs、buffer、http、手写cli
  • 02 - Koa源码分析
    • 录播: Koa源码实现与中间件源码实现
  • 03 - 网络编程 - 录播
    • 录播 : 网络编程
    • 录播 : socketio实现即时通讯
    • 录播: 电影天堂爬虫实战
  • 04 - 持久化01
    • 录播: Mysql与Sequelize、电商系统实战
  • 05 - 持久化02
    • 录播: MongoDB与低代码平台
  • 06 - 鉴权
    • 直播: Session与Jwt token
    • 录播: SSO单点登陆
    • 录播:第三方Auth2.0实战
  • 07 - Egg源码解析
    • 录播:Egg源码解析
  • 08 - EggJs实战
    • 直播: EggJs实战
  • 09 - 手写装饰器风格框架
    • 录播:手写装饰器风格框架
  • 10 - 部署
    • 录播: 阿里云ECS_实战
    • 录播: Docker基础
    • 直播:高可用Node环境 + CI/CD
  • 11 - 公众号开发
    • 录播: 客服消息接口、服务器端API
    • 录播:网页端接口与Auth2.0
  • 12 - 网络安全基础
    • 直播: XSS、CSRF、点击劫持、SQL注入攻防实战

基础知识

个人网页

示例代码运行

  • NodeJS 10.0 need https://nodejs.org/en/
  • Clone or download this repository Enter your local directory, and
  • install dependencies:
npm install

kaikeba-code's People

Contributors

su37josephxia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kaikeba-code's Issues

node第二章,node原理,kkb.js,应有传参错误。

测试用例如下

app.use(async (ctx,next)=>{
    console.log('ctx',ctx)
    console.log('next',next)
    ctx.body='<a>';
    await next();
    ctx.body+='</a>'
})

app.use(async (ctx,next)=>{
    ctx.body+='<b>';
    await next();
    ctx.body+='</b>'
})

app.use(async (ctx,next)=>{
    ctx.body+='abc'
})

发现参数ctx变成了next。
解决:直接传ctx到compose

listen(port, callback) {
        const server = http.createServer(async (req, res) => {
            // 创建上下文
            const ctx = this.createCtx(req, res);
            const fn = this.compose(ctx,this.middleweres);
            await fn();
            res.end(ctx.body);
        });

        server.listen(port, (err) => {
            callback(err)
        })
    }
    // 洋葱模型直接传参
    compose(ctx,middleweres) {      
        return function () {
            // 如果有下一个,返回下一个带参数的promise,否则结束。
            function dispatch(i) {
                let fn = middleweres[i];
                if (!fn) {
                    return Promise.resolve();
                }
                return Promise.resolve(fn(ctx,
                    function next() {
                        return dispatch(i + 1);
                    }
                ))
            }
            return dispatch(0);
        }
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.