• Node.js Video Tutorials

Node.js - assert() 函数



Node.js assert() 函数用于验证给定值是否为真值。

其中,真值是指布尔值或在使用比较运算符时被视为“true”的非布尔值。除了以下值之外,所有值都被视为真值:false、0、−0、0n、""、null、undefined 和 NaN。

当我们传递的参数不是false时,此函数会抛出AssertionError。如果true,则不会抛出任何错误。此函数的工作原理类似于assert.ok()函数。

这是assert模块的内置函数,该模块提供了一组用于验证不变式的断言函数。

语法

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

assert(value[, message]);

参数

此函数接受两个参数。下面描述了这些参数。

  • Value − (必填)此参数中传递的将被评估是否为真值。可以是任何类型。

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

返回值

如果value不是 true,则此函数将在终端返回AssertionError

示例

在下面的示例中,我们通过将布尔值“false”作为参数来调用 Node.js assert() 函数。

const assert = require('assert');
assert(false);

输出

由于给定值为假值,因此当我们编译并运行代码时,它将抛出AssertionError

node main.js
assert.js:269
   throw err;
   ^
   
AssertionError [ERR_ASSERTION]: This is a falsy value
   at Object.<anonymous> (/home/cg/root/639c16a06de3d/main.js:3:1)
   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)

示例

在下面的示例中,我们传递了一个字符串作为可选参数(消息)。以及一个假值。使用此值,我们可以自定义ERR_ASSERTION 语句

const assert = require('assert');
assert(NaN, "The Given value is not a number ");

输出

assert.js:269
   throw err;
   ^
   
AssertionError [ERR_ASSERTION]: The Given value is not a number 
   at Object.<anonymous> (/home/cg/root/63b28b24b5cef/main.js:2:1)
   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)

示例

在下面的示例中,我们正在创建一个函数并执行两个数字的减法。然后,我们在Node.js assert() 函数value参数中将函数的返回值与某个数字进行比较。

const assert = require('assert');
function subtraction(a,b){
   return a - b;
};
var output = subtraction(10 - 7);
assert(output === 4, 'Ten minus seven is four');

输出

当我们编译并运行代码时,它将向输出抛出AssertionError。因此结果为false

assert.js:269
   throw err;
   ^

AssertionError [ERR_ASSERTION]: Ten minus seven is four
   at Object.<anonymous> (/home/cg/root/639c16a06de3d/main.js:7:1)
   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参数来调用Node.js assert()函数。

const assert = require('assert');
assert(true, 'This is a truthy value');

输出

因此,当我们编译并运行代码时,它不会向输出抛出AssertionError。因此结果为true

// Returns nothing

示例

在下面的示例中,我们正在创建一个函数并执行两个数字的加法。然后,我们在 assert() 函数的value参数中将函数的返回值与某个数字进行比较。

const assert = require('assert');
function add(a,b){
   return a + b;
};
var output = add(5 + 5);
assert(output === 10, 'five plus five is ten');

输出

当我们编译并运行代码时,函数不会向输出返回任何内容。

nodejs_assert_module.htm
广告