MassiveJS 奇怪的转换错误
MassiveJS strange casting error
我是 Massive 的新手,但我真的很喜欢它。使用 express.Router()
并进行非常简单的数据库调用时:
router.get('/:id', function(req, res, next) {
db.accounts.find(req.params.id, function(err, results) {...});
我得到一个错误:
Error: Argument 0 (conditions) should be type Object, but it was type
string with value 2.
at Args (C:\Users\JMichelson\WebstormProjects\Proximityv6\node_modules\args-js\Args.js:399:10)
at Object.exports.forArgs (C:\Users\JMichelson\WebstormProjects\Proximityv6\node_modules\massive\lib\arg_types.js:7
7:10) ...
通过简单的转换解决了这个问题:
router.get('/:id', function(req, res, next) {
db.accounts.find(Number(req.params.id), function(err, results) {...});
但我发现这个转换要求很奇怪,因为 JavaScript 应该根据需要自动转换。
我这样做正确吗?
我相信 find 需要一个数字,而参数以字符串形式出现,因此 args 解析器会感到困惑。您可以在此处使用 int.parse
或执行您正在执行的操作。 Massive 在这方面有点自以为是:如果你愿意,你可以使用字符串键,但你必须使用 `{id:"my string"}.
我是 Massive 的新手,但我真的很喜欢它。使用 express.Router()
并进行非常简单的数据库调用时:
router.get('/:id', function(req, res, next) {
db.accounts.find(req.params.id, function(err, results) {...});
我得到一个错误:
Error: Argument 0 (conditions) should be type Object, but it was type string with value 2. at Args (C:\Users\JMichelson\WebstormProjects\Proximityv6\node_modules\args-js\Args.js:399:10) at Object.exports.forArgs (C:\Users\JMichelson\WebstormProjects\Proximityv6\node_modules\massive\lib\arg_types.js:7 7:10) ...
通过简单的转换解决了这个问题:
router.get('/:id', function(req, res, next) {
db.accounts.find(Number(req.params.id), function(err, results) {...});
但我发现这个转换要求很奇怪,因为 JavaScript 应该根据需要自动转换。
我这样做正确吗?
我相信 find 需要一个数字,而参数以字符串形式出现,因此 args 解析器会感到困惑。您可以在此处使用 int.parse
或执行您正在执行的操作。 Massive 在这方面有点自以为是:如果你愿意,你可以使用字符串键,但你必须使用 `{id:"my string"}.