node.js - How to check for Object key in javascript for object not inheriting from Object.prototype -


in node 6.x querystring module parses values object not extend object.prototype (although have no idea why change made).

given that, expected way check query parameters not contain value, i.e. called express or koa localhost:8080/some/path?keyonly , want check presence of this.query.keyonly? expected this.query.hasownproperty('keyonly') doesn't work. what's alternative?

for background behind change, see original pr here.

in general, should not rely on foo.hasownproperty() since hasownproperty reassigned else (hence reason querystring change -- imagine calling web service http://example.org/foo?hasownproperty=hahacrashed).

as far alternatives, check if property defined, example:

var qs = querystring.parse('foo=bar'); if (qs.foo !== undefined) {   // ... } 

you like:

var qs = querystring.parse('foo=bar'); if (object.hasownproperty.call(qs, 'foo')) {   // ... } 

but isn't efficient because hasownproperty() performs additional (and unnecesary in case of querystring now) checks , uses .call() less efficient


Comments

Popular posts from this blog

javascript - Thinglink image not visible until browser resize -

firebird - Error "invalid transaction handle (expecting explicit transaction start)" executing script from Delphi -

mongodb - How to keep track of users making Stripe Payments -