0

我正在尝试通过执行以下操作将参数传递到 mongodb 脚本中:

mongo --eval="foo='hello world'" test.js

但我希望变量 foo 是可选的(即,foo如果它存在则使用,否则继续没有它),所以在test.js我测试变量的存在时:

if (foo)
    print(foo)
    //do stuff with foo

如果我没有在命令行上指定 foo,这会引发错误:

$ mongo test.js
ReferenceError: foo is not defined test.js:1
failed to load: test.js

这通常适用于普通 JS,我如何在用于 mongo 的脚本中执行此操作?

基本上,我希望能够在mongo test.js不设置 foo 变量的情况下仍然可以让脚本仍然工作。

4

1 回答 1

5

我相信 mongo 的 js 运行时与 node.js 相似之处在于它不允许直接访问尚未定义的变量。我对此进行测试的方法是使用“global.foo”(或“this.foo”,视情况而定),如果已定义,它将返回 foo,否则将是未定义的(并且不会导致错误)。

于 2012-09-10T19:18:08.427 回答