CNode

初用koa,为啥同一个中间件里的代码会执行两次?

问答
Hhwoarangzk发布于12 年前最后回复12 年前3 回复6808 浏览0 收藏

代码如下: var app = require('koa')();

var i = 0;

app.use(function *(next) {
	yield next;
    console.info(i++);
});

app.use(function *(next) {
     yield next;
    this.body = 'Hello, total is ' + i;
});

app.listen(3000);

就这样的代码,每次我刷新页面,控制台的i总是+2,为啥不是+1?页面上的i也是+2,很奇怪。。。哪里的问题呢?

查看回复

回复 (3)

G
GuoZhang#1·12 年前

favicon?

app.use(function *(next) {
    console.log(this.url);   // 加上这个观察下, 到底收到了几个请求
    yield next;
    console.info(i++);
});
S
Sunyson#2·12 年前

请求了 favicon

H
hwoarangzk#3·12 年前

有可能是favicon 但我有时候重启服务 又只+1而不是+2 看起来没规律一样

参与回复
登录后即可参与回复。登录