• 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
廣告

© . All rights reserved.