Node.js assert() 函数用于验证给定值是否真实。
其中 truthy 值是布尔值或非布尔值,在与比较运算符一起使用时被视为“true”。除以下值外,所有值都被视为 true 值:false、0 、 -0 、 0n 、 “” 、 null 、 undefined 和 NaN。
当我们作为参数传递的值不是 false 时,此函数会抛出 AssertionError。如果该值为 true,则不会引发任何错误。此函数的工作原理类似于 assert.ok() 函数。
这是 assert 模块的一个内置函数,它提供了一组用于验证不变量的 assert 函数。
语法
以下是 Node.js assert() 函数的语法 -
assert(value[, message]);
参数
此函数接受两个参数。下面将对此进行描述。
- value − (必填) 将评估此参数中传递的值是否真实。该值可以是任何类型。
- message − (可选)字符串或错误类型可以作为值传递给此参数。
返回值
如果值不为 true,则此函数将在终端上返回 AssertionError。
例在下面的示例中,我们通过将布尔值“false”作为参数传递来调用 Node.js assert() 函数。
assert(false);
输出
由于给定的值是 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)
例
在以下示例中,我们将一个字符串作为可选参数 (message) 传递。以及 false 值。使用此值,我们可以自定义ERR_ASSERTION语句。
const assert = require('assert');
assert(NaN, "The Given value is not a number ");
输出
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。因此,结果是错误的。
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 参数并将一个文本传递给函数的消息参数来调用 Node.js assert() 函数。
const assert = require('assert');
assert(true, 'This is a truthy value');
输出
因此,当我们编译并运行代码时,它不会向输出抛出 AssertionError。因此,结果是正确的。
例
在下面的示例中,我们正在创建一个函数并执行了两个数字的相加。然后我们将函数的返回值与 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');
输出
当我们编译并运行代码时,该函数不会在输出上返回任何内容。