在节点
上的快递中 var query = request.query;
打印下面query
的信息:
添加
mac
上的:query instanceof Object
为真
但在CentOS release 6.4 (Final)
上:是假的(下面的图片)
再次添加:
节点:0.12.2
表达:3.4.4
操作系统:CentOS release 6.4(Final)
答案 0 :(得分:1)
此代码在Express 3和Express 4中都显示true
。
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send(req.query instanceof Object);
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
因此,这似乎不是Express中普遍存在(或至少不普遍存在)的问题。
我能想到的最有可能的事情就是代码中的某个地方(或者你正在使用的库/中间件),query.__proto__
被设置为看起来像对象但却不是。也许类似的东西?:
var query = {};
query.__proto__ = null;
query.__proto__ = '{}';
console.log(query.__proto__); // {}
console.log(typeof query); // object
console.log(query instanceof Object); // false