2016-04-15 19 views
0

在OS X終端中運行node app.js以啓動服務器後,在編輯器中更改其內容並保存後,即使在刷新localhost:3000頁面時,即使服務器尚未重新啓動(到目前爲止,我已經試過.ejs,.css.js文件)。爲什麼我的代碼中的更改反映出來而無需重新啓動服務器?

詳情:

  • 問題只發生在一個目錄;我無法將它複製到另一個類似結構的同級目錄中。
  • 據我所知,我沒有安裝Nodemon/Forever/Node Supervisor。
  • 我試圖killall node(我認爲我沒有什麼可輸,因爲這本來應該是我的電腦上運行的唯一的過程,我現在認識到,這可能是錯誤的做法)
  • 我已經嘗試重新啓動計算機但無濟於事;問題仍然存在。
  • 當我停止應用程序時,localhost:3000頁面顯示「無法到達此站點」,即服務器可以並且已經停止。

爲什麼我沒有需要停止(按Ctrl +Ç)然後再重新啓動我每次保存文件的編輯器(輸入)的應用程序?這裏發生了什麼以及我如何複製它或使其停止?

+2

看來你到目前爲止編輯的文件是客戶端文件,它不需要重啓節點進程 –

+0

@danielnetto哦,我花了兩個小時就可以了,你的單行答案似乎是正確的那一個。謝謝! – sabriele

+0

樂意幫忙':)' –

回答

2

HTML,CSS和前端JS修改並不要求您重新啓動節點進程,因爲它們是在每個請求上讀取的,而不像您啓動服務器時立即加載到內存中的服務器端代碼。

基本上發生的事情是,當你運行你的服務器端JS像app.js它加載在內存中,只要進程正在運行,當你提供一個html文件你的框架,該文件中的任何代碼將保留在內存中每次收到請求時都會讀取html文件,因爲每次都會反映html文件的更改,而不必重新啓動服務器,以及html文件中的JS更改會反映出來,因爲它們不是服務器端的一部分處理。在每一個請求你的過程打開HTML文件讀取其內容並使用HTTP協議發送到瀏覽器,您的瀏覽器讀取您的HTML響應並請求您的服務器的必要JS文件包含在您的公共文件夾中的HTML。希望這有助於。

+0

謝謝你的回答!你能否指出我可以在哪裏閱讀更多關於這方面的內容,因爲我已經嘗試過並且未能向Google提供答案,並且在我正在遵循的教程中沒有提及這一點。 – sabriele

+0

我自己找不到更多信息,我會爲你提高一點回答 – AJS

+0

我已經更新了我的答案,隨時提出任何問題,我會盡力幫助儘可能多 – AJS

相關問題