Node.js - assert.ok() 函数



Node.js assert.ok() 函数是 Node.js 的 assert 模块的内置函数。它用于验证给定值是否为真值。

如果 on 在与比较运算符一起使用时被视为布尔值 true,则为 true。除 false 、 0 、 -0 、 0n 、 “” 、 null 、 undefined 和 NaN 之外的所有值都被视为真值。

当 value 参数为 falsy 时,Node.js assert.ok() 函数会向输出抛出 AssertionError。如果 value 参数为 true,则它不会向输出返回任何内容。如果没有给 value 参数提供任何输入,则函数会抛出一个 AssertionError,并显示消息 'No value argument passed to 'assert.ok()'。

语法

以下是 assert.ok() 函数的语法Node.js -


assert.ok(value[, message]);

参数

此函数接受两个参数。下面将对此进行描述。

  • value − (必填)此参数值将通过它是否为真实值来评估。
  • message − (可选) 字符串或错误类型可以作为输入传递给此参数。

返回值

如果值为 falsy,则此函数将在终端上返回 AssertionError。如果值为 truthy ,则不会返回任何内容。

以下是一些 truthy 值 -

  • true
  • {}
  • []
  • 30
  • "0"
  • "false"
  • -32
  • 12n
  • 3.14
  • -3.14
  • Infinity
  • -Infinity

在以下示例中,我们将一个真实值传递给 Node.js assert.ok() 函数的 value 参数。


const assert = require('assert');

assert.ok({}, 'The value is truthy');

输出

如果我们编译并运行代码,它不会将 AssertionError 抛向输出。这是真的,因为“{}”是一个真值。

// Returns nothing

在下面的示例中,我们将传递一个整数值并检查其类型。


const assert = require('assert');

var num = 45;
assert.ok(typeof num === 'number', 'The value is truthy');

输出

如果我们编译并运行代码,它不会将 AssertionError 抛向输出。这是真的,因为 45 == 'number'。

// Returns nothing

以下是 falsy 值 -

  • false
  • 0
  • -0
  • 0n
  • "", '', ``
  • null
  • undefined
  • NaN

在以下示例中,我们将一个虚假值传递给函数的 value 参数。


const assert = require('assert');

assert.ok(null, 'The value is falsy');

输出

如果我们编译并运行代码,它将向输出抛出一个 AssertionError 以及消息中的文本。这是错误的,因为“null”是一个虚假值。

assert.js:269
throw err;
^

AssertionError [ERR_ASSERTION]: The value is falsy
at Object.<anonymous> (/home/cg/root/639c3b5c17b34/main.js:3:8)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

在以下示例中,我们将传递一个字符串值并检查其类型。


const assert = require('assert');
var text = 'Qikepu';
assert.ok(typeof text === 'boolean', 'The value is falsy');

输出

如果我们编译并运行代码,它将向输出抛出一个 AssertionError 以及消息中的文本。这是错误的,因为 'Tutorialspoint' !== 'boolean.

assert.js:269
throw err;
^

AssertionError [ERR_ASSERTION]: The value is falsy
at Object.<anonymous> (/home/cg/root/639c3b5c17b34/main.js:4:8)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

在以下示例中,我们将一个虚假值传递给函数的 value 参数,但我们没有将任何输入字符串传递给消息参数。


const assert = require('assert');

assert.ok(false);

输出

如果我们编译并运行代码,它将抛出一个 AssertionError,其中包含一条由函数自动分配的默认文本消息。这是错误的,因为“false”是一个虚假的值。

assert.js:269
throw err;
^

AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

assert.ok(false)

at Object.<anonymous> (/home/cg/root/639c3b5c17b34/main.js:3:8)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

在以下示例中,我们没有向函数的 value 参数传递任何值,也没有向消息参数传递任何输入字符串。


const assert = require('assert');

assert.ok();

输出

如果我们编译并运行代码,它将抛出一个 AssertionError,如“没有值参数传递给 'assert.ok()''。

assert.js:269
throw err;
^

AssertionError [ERR_ASSERTION]: No value argument passed to `assert.ok()`
at Object.<anonymous> (/home/cg/root/639c3b5c17b34/main.js:3:8)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)