node.js - 如何在另一个生成器函数中访问 koa 上下文?

标签 node.js koa

在 Koa 中,我可以通过 this 访问第一个生成器函数中的 Koa Context:

app.use(function *(){
    this; // is the Context
}

但是如果我让步给另一个生成器函数,我就不能再通过 this 访问上下文了。

app.use(function *(){
    yield myGenerator();
}

function* myGenerator() {
    this.request; // is undefined
}

我已经能够简单地将上下文传递给第二个生成器函数,但想知道是否有更简洁的方法来访问上下文。

有什么想法吗?

最佳答案

要么像你说的那样将 this 作为参数传递:

app.use(function *(){
    yield myGenerator(this);
});

function *myGenerator(context) {
    context.request;
}

或使用 apply() :

app.use(function *(){
    yield myGenerator.apply(this);
});

function *myGenerator() {
    this.request;
}

关于node.js - 如何在另一个生成器函数中访问 koa 上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26643630/

相关文章:

cloudflare 上的 Node.js https

javascript - 让 koa.js 在加载时执行某些操作(而不是根据请求)

javascript - 为什么Webstorm显示不可能的结果?

javascript - Ajax 响应是文件下载

javascript - 在 Mongoose 中使用自定义条件查找

javascript - Meteor Npm.require() 在父目录中找不到文件

typescript - 使用 Typescript 的 Shopify CLI

node.js - ~~ Javascript 运算符

mysql - 关联关联 : include entity in JSON response

javascript - 对于多个文件上传,req.file 未定义