• 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
廣告
© . All rights reserved.