使用nodejs中的断言模块的严格模式



您能帮助我了解以下错误:

js content:

const assert = require('assert').strict;
var res = assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5]);

Error:

TypeError:无法读取未定义的属性'deepequal'

My understanding:

根据Nodejs DOC,加载" assert"模块时使用.strict将使我们处于限制模式,从而导致assert.deepEqual()assert.deepStrictEqual()的行为相同,并且由于此描述的结果。输出应为

" errors.assertionError"

请指导我?

确保您使用的是Nodev。9.10.1v。9.10.1servert API,因为strict功能与以前的节点版本不兼容。这是Nodev。8.11.1和v。8.11.1essert API,因此您可以看到strict不可用。

在我的情况下,使用节点v。9.10.1。

可以正常工作。
const assert = require('assert').strict;
// check your node version
console.log(process.version)
assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5]);

v9.10.1
assert.js:49
  throw new AssertionError(obj);
  ^
AssertionError [ERR_ASSERTION]: Input A expected to deepStrictEqual input B:
+ expected - actual ... Lines skipped
  [
    [
...
        2,
-       3
+       '3'
      ]
...
    5
  ]

最新更新