簡體   English   中英

為什么使用 Node JS 來創建 REST API 和 MVC Web 應用程序

[英]Why is Node JS being used to create REST APIs and MVC Web Applications

我正在學習 NodeJS 並嘗試用它創建一些示例。 為了這個目的,我遵循的教程、博客或視頻最終使用 Express 和 Mongo db 創建了一個 Web 應用程序,因此我也被引導到了這個方向。

現在我讀到的這段時間里重復最多的一句話是 Node 在處理事件和異步編程方面要好得多,因此基於事件的應用程序肯定可以利用 Node 的功能,就像聊天服務器一樣(因為可能沒有足夠的要進行的處理)。 但這些應用程序很少。

現在,我對如何創建 Web 應用程序(或 REST API)利用事件的好處有點好奇。 我在理解 Node 時是否遺漏了一些東西,除了聊天服務器之外,還有其他 Node 應用程序嗎?

https://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js

它有一些 Node.js 應該被使用的例子,比如,

聊天

應用程序接口

排隊輸入

數據流

代理

可以使用更多異步特性的地方。

讓我堅持您提出的 API/WebServer 示例。

由於 Node.js 基本上運行 JavaScript 代碼,它本質上是異步的,很明顯。 所以這基本上意味着它試圖任何昂貴或長時間運行的任務(例如磁盤 I/O 或數據庫請求)卸載到“其他人”(例如內核、本地數據庫庫)。 完成后,它可以繼續處理其他任務。 因此它是非阻塞的

現在考慮一個為您的靜態 html、js、... 文件提供服務並提供 API 的網絡服務器。 基本上,您的服務器要做的很多工作是“為我提供該文件”(=磁盤 I/O)或(在 API 的情況下)從數據庫中獲取一些數據。 由於這些任務不在您的節點環境中執行,因此您的節點應用程序本身(假設您沒有其他瓶頸)能夠處理大量請求。

另外節點是單線程的。 對於標准用例,它根本不需要多個線程,因為您沒有像其他語言一樣,線程會阻塞更長時間的問題。 在我看來,這使得它更容易使用,因為您不必處理並行編程帶來的所有問題。 然而,當涉及到 CPU 密集型任務時,這在 Web 服務器和 API 領域相對較少,這可能是一個問題(這是可以解決的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM