如果JavaScript文件被加載並在瀏覽器中執行,服務器如何知道什麼時候該文件是一個節點js文件,因此在服務器上執行?新手:JavaScript的VS節點JS
回答
Web瀏覽器和nodej都運行JavaScript腳本。主要區別在於NodeJS是一個服務器端框架,並且在服務器中執行JavaScript代碼,而不是在Web瀏覽器(客戶端)的環境中執行。
沒有任何像nodejs文件的概念。只有javascriprt腳本可以在客戶端上運行(通過內置在Web瀏覽器中的JavaScript引擎的幫助,比如用於chrome的V8)或者在服務器中(通過在這種情況下的NodeJS的幫助)如果我沒有錯的是使用的NodeJS JavaScript引擎是V8,谷歌的JavaScript引擎。)
我想一些幾件事情添加到克里斯托的答案。
JavaScript是一種語言。 node.js不是一種語言,而是運行普通JavaScript的「環境/軟件集」。
所有瀏覽器都運行網頁的JavaScript的(SpiderMonkey的爲Firefox,V8 Chrome瀏覽器)JavaScript引擎。
Node.js的僅僅是一些庫捆綁做I/O和網絡,這樣就可以使用JavaScript的瀏覽器之外創建後端服務的V8發動機。
謝謝,有道理 – Max
我認爲當空氣混亂時,具體的例子比概念上的解釋更好。所以,借這個例子:
(當然在JavaScript中,)你叫Node.js的劇本「hello.js」,只是輸出「Hello World!」在控制檯中並退出。您可以通過輸入node hello.js
來運行此腳本。它只會打印消息並退出。
您有另一個名爲「server.js」的Node.js腳本實現了在端口3000上偵聽的HTTP服務器(又名Web服務器)。該服務器從名爲「static」的目錄提供靜態文件。該文件夾中有兩個文件:「index.html」和「app.js」。這些是網站的文件(當然,app.js使用JavaScript)。您通過輸入node server.js
運行此腳本。它將啓動HTTP服務器並開始等待客戶端請求。
雖然HTTP服務器腳本運行,您訪問「http://localhost:3000」打你上面開始很Web服務器。服務器知道如何關閉靜態文件,並知道它應該默認提供index.html。您的瀏覽器會加載index.html,並對其進行處理並理解它也應該返回並請求app.js文件(因爲index.html中的標記爲<script>
)。當瀏覽器加載app.js時,瀏覽器運行它。 Node.js服務器不關心任何事情,只是將它作爲另一個靜態文件提供。
很好的例子謝謝 – Max
很好的解釋 –
- 1. 新手節點JS查詢
- 2. Javascript節點js瀏覽器刷新POST
- 3. 的JavaScript推不節點JS
- 4. PACT-JS新手的起點
- 5. 節點JS客戶端vs服務器
- 6. 節點js下載vs文件流
- 7. 節點JS快速手柄重新加載頁面
- 8. 新手與節點JS如何設置和獲取cookie
- 9. 節點JS和JavaScript中的hasDeepProperty
- 10. Javascript上的真正宏(節點JS)
- 11. 新手gnuplot點之間的情節線
- 12. heroku上的更新節點js包
- 13. 節點js中的更新字段
- 14. Cytoscape的JS更新節點與fontawesome
- 15. 拋出新的RangeError節點js
- 16. 點擊VS在JS
- 17. 節點JS - UnhandledPromiseRejectionWarning
- 18. JS節點
- 19. 新手節點:在JavaScript中引用變量過去了res.render
- 20. 迭代節點js中的Xml節點
- 21. LINQ to XML新手問題:按節點名稱返回節點
- 22. 節點JS「動態」寫入/更新火力地堡節點
- 23. 節點JS Express更新問題
- 24. 通過節點js api更新elasticsearch doc
- 25. d3.js如何更新嵌套節點?
- 26. 節點js修士更新lingers
- 27. 節點靜態js文件不刷新
- 28. SSL在節點8 VS節點7
- 29. MarkLogic Taskserver d節點VS E-節點
- 30. OpenStack單節點vs多節點
@Max歡迎您!我很高興我的幫助。 – Christos