Node.js 中的 API 函数类型
API代表应用程序编程接口。它由各种通信协议和子程序组成,可供程序用于相互通信。有多种类型的 API 可用,例如 WEB API、LOCAL API、PROGRAM API 等。它们是提供输出的最有效和最可靠的方式之一。
Node.js中的 API 函数类型:
- 异步、非阻塞函数
- 同步、阻塞功能
异步、非阻塞函数:顾名思义,这些函数是异步操作的。这意味着当 Node.js 向 API 发出数据请求时,在收到数据之前它不会被阻塞。相反,它会在调用它之后继续移动到下一个 API,并且来自 Node.js 事件的通知机制将响应服务器对上一个 API 调用。用外行的话来说,这些函数允许在处理请求时进一步工作。示例:电子邮件、在线论坛
同步、阻塞函数:与异步函数相反,同步函数充当阻塞函数。这意味着这些函数将使调用系统等待响应。因此,当系统使用同步 API 时,它希望在发出请求时立即获得数据。这些类型的 API 用于可用性和连接性较高且预期延迟较低的情况。通俗地说,应用程序将请求并等待响应,直到返回值。示例:即时消息、视频会议
示例:假设我们有一个名为data.json的 JSON 文件,其中包含以下某些数据:
{
"name": "John",
"age": 50,
"gender": "male"
}
现在,我们将使用异步和同步函数来读取这些数据。 Node.js 有一个名为fs的内置模块,它代表文件系统,可用于以建模方式与文件交互。要使用它,我们需要如下要求:
const fs = require('fs');
我们在应用程序中使用了以下两个函数:
- 为了异步读取文件,我们使用了fs模块支持的readFile()方法。
- 为了同步读取文件,我们使用了fs模块支持的readFileSync()方法。
例子:
index.js
// Requiring inbuilt module
const fs = require('fs');
// Asynchronous function
fs.readFile('data.json', 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
console.log("Below is the Data from Asynchronous function call")
console.log(data);
});
// Synchronous function
var data = fs.readFileSync('data.json','utf8');
console.log("Below is the Data from Synchronous function call")
console.log(data);
运行应用程序的步骤。
使用以下命令运行index.js文件。
node index.js
输出:我们将在您的终端屏幕上看到以下输出:
Below is the Data from Synchronous function call
{
"name": "John",
"age": 50,
"gender": "male"
}
Below is the Data from Asynchronous function call
{
"name": "John",
"age": 50,
"gender": "male"
}
执行上述代码时,它将产生与异步相同的输出,并且在相同的时间范围内。这背后的原因是,当我们读取一两个文件时,两种方法之间的差异并不显着。但是当我们操作一个数据库并处理多个请求时,差异会非常明显,因为它会直接影响性能。