天天看點

《寫給PHP開發者的Node.js學習指南》一2.3 一個PHP示例頁面

本節書摘來自異步社群《寫給php開發者的node.js學習指南》一書中的第2章,第2.3節,作者【美】daniel howard,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

寫給php開發者的node.js學習指南

page()函數就是頁面本身。從廣義上講,這個過程就是将php檔案中的php代碼複制到page()函數中。然後将page()函數中的php代碼轉換成node.js代碼。當page()函數中隻有node.js代碼并且複制過來的php代碼一點不剩的時候,page()函數就會和php代碼的行為完全相同,除了它是node.js而不是php。

下面将會展示一個簡單的轉換示例。

假設現在你有一個簡單的showx5.php頁面,它同時包含php和html:

《寫給PHP開發者的Node.js學習指南》一2.3 一個PHP示例頁面

首先,把php代碼拷貝并粘貼到page()函數中,這會産生比較奇怪的,沒有功能的php/node.js混合代碼:

《寫給PHP開發者的Node.js學習指南》一2.3 一個PHP示例頁面
《寫給PHP開發者的Node.js學習指南》一2.3 一個PHP示例頁面
《寫給PHP開發者的Node.js學習指南》一2.3 一個PHP示例頁面

然後修改httpsvr.njs檔案,将showx5.php url指定到showx5.njs本地子產品:

《寫給PHP開發者的Node.js學習指南》一2.3 一個PHP示例頁面

假如你将httpsvr.njs、initreq.njs和showx5.njs檔案放到同一個目錄下并且運作node.js伺服器,那麼php和node.js代碼執行效果都一樣。使用用戶端如浏覽器去通路下面的url會得到一樣的結果:

《寫給PHP開發者的Node.js學習指南》一2.3 一個PHP示例頁面

第一個url會請求php伺服器。第二個url會請求與之相同的node.js web伺服器。

雖然showx5示例是微不足道的,但是它示範了三件事情:

你有一個用來将php轉換到node.js的開發環境。

你有一個node.js架構來支援每一個 php頁面到node.js的轉換。

你可以很容易地把瑣碎的php頁面轉換成node.js。

在可以将瑣碎的php頁面轉換成node.js後,本書剩下章節将關注于如何轉換那些複雜的,真實世界中的php頁面。在下一章中,我們将讨論回調函數以及代碼線性的概念,将會展示如何在将php代碼粘貼到page()函數之前進行重構以利于之後更容易地轉換成node.js。