[Node6] 尝鲜升级
发布于 9 年前 作者 nekron 5436 次浏览 最后一次编辑是 8 年前 来自 分享

升级node6以后随便跑了同事的一个代码,然后无情的报错了,当时我的第一反应是: 坑爹的,果然先升的先跳坑 不过我还是选择了排查一下~

// 使用koa
this.request.query.hasOwnProperty('token')

错误:

hasOwnProperty is not a function

我当时心中就暗骂Object的原型链都能出问题,还能不能用了。但是我还是本着求真的精神去扫了一眼koa源码,发现koa的request都是Object.create创建的,这。。。我。。。突然。。。 就很尴尬了。。。之前的node5是怎么跑通的。。。给跪了

5 回复

Breaking changes between v5 and v6 - querystring

The parsed object returned by querystring.parse() now inherits from Object.create(null) rather than Object.prototype.

koa中

get query() {
	var str = this.querystring;
	var c = this._querycache = this._querycache || {};
	return c[str] || (c[str] = qs.parse(str));
},

so…

给跪了。。。

没刷 changelog 升级是万万不能的。

https://cnodejs.org/topic/570050f68a612c5559d16b94 lodash _.find v3 升 v4, 导致的bug 找了我一上午, 我的天哪~

冲动的惩罚比较好听

@magicdawn 恩,不过我碰到的这个太隐式了,我哪怕看了都不一定联想到。。。

回到顶部