• Node.js Video Tutorials

Node.js - assert.ok() 函数



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

真值是在与比较运算符一起使用时被视为布尔值 true 的值。除以下值外,所有值都被视为真值:false、0、-0、0n、""、null、undefined 和 NaN。

当 value 参数为假值时,Node.js assert.ok() 函数会向输出抛出一个 AssertionError。如果 value 参数为真值,则不会向输出返回任何内容。如果 value 参数没有输入,则函数会抛出一个 AssertionError,其消息为“未向 `assert.ok()` 传递 value 参数”。

语法

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

assert.ok(value[, message]);

参数

此函数接受两个参数。如下所述。

  • value − (必需) 此参数 value 将被评估是否为 真值

  • message − (可选) 可以将字符串或 Error 类型作为输入传递给此参数。

返回值

如果 value 为假值,则此函数将在终端返回 AssertionError。如果 value 为真值,则不会返回任何内容。

以下是 真值 的一些示例:

  • 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

以下是 假值

  • false

  • 0

  • -0

  • 0n

  • "", '', ``

  • null

  • undefined

  • NaN

示例

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

const assert = require('assert');

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

输出

如果我们编译并运行代码,它将抛出一个 AssertionError,以及 message 中的文本到输出。这是错误的,因为 "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 = 'Tutorialspoint';
assert.ok(typeof text === 'boolean', 'The value is falsy');

输出

如果我们编译并运行代码,它将抛出一个 AssertionError,以及 message 中的文本到输出。这是错误的,因为 '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 参数,并且我们没有向 message 参数传递任何输入字符串。

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 参数传递任何值,并且我们没有向 message 参数传递任何输入字符串。

const assert = require('assert');

assert.ok();

输出

如果我们编译并运行代码,它将抛出一个 AssertionError,消息为“未向 'assert.ok()' 传递 value 参数”。

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)
nodejs_assert_module.htm
广告