CNode

[Node6] 尝鲜升级

分享
Nnekron发布于10 年前最后回复10 年前5 回复6105 浏览0 收藏

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

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

错误:

hasOwnProperty is not a function

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

查看回复

回复 (5)

S
SinalVee#1·10 年前

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...

M
magicdawn#2·10 年前

给跪了。。。

M
magicdawn#3·10 年前

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

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

Y
yakczh#4·10 年前

冲动的惩罚比较好听

N
nekron#5·10 年前
引用 magicdawn没刷 changelog 升级是万万不能的。 https://cnodejs.org/topic/570050f68a612c5559d16b94 lodash .find v3 升 v4, ...

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

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