本次問題需要的程式連結:https://github.com/justmore5mins/class-game
我的問題:
我要寫一個聊天的軟體,然後我想要用json記錄聊天的內容,我的npm,node.js都裝好了,vsocde沒有讀到(但是有這樣的狀況)
我用Chrome預覽程式,他卻出現這樣的錯誤
安裝好node.js跟npm的證明:
請問我這樣子要怎麼辦
要先了解網頁原理
nodejs
的執行環境是在 server
端,因此才有辦法做檔案的讀取寫入
而瀏覽器都有 javascript
可以在 client
端執行
因此你才能在現在的網頁中與頁面甚至是伺服器互動
這兩者是有差異的,雖然程式語言都是 javascript
但執行環境的不同
會影響有些功能是不是能使用,例如:檔案讀取(fs
)、指令執行(exec
)
不然你可以試想:如果你平常逛網頁,該網頁的作者就能直接讀取你電腦的任何檔案,你敢逛嗎?
有看到你的 github
有寫 python
你可以理解為 python
& nodejs
的執行環境是一樣的,都是後端
而你寫的 chat.js
的應用有用到 localStorage
這個執行環境就只有在瀏覽器上,就是前端
(可以想想你電腦有 localStorage
這東西嗎?還是只有瀏覽器有)
後端:只能在你電腦跑,你是伺服器架設的主人
前端:只要有瀏覽器連的到你電腦的裝置都可以跑,用手機、平板、電腦,在區網內都可以看到你的網頁
你好像是想在瀏覽器裏面require('fs')
瀏覽器上不可能讓js能夠存取硬碟裏的檔案,不然隨便一個網站就可以駭入任何人的電腦了。
若你只是想存一點資料的話,可以用localStorage
function saveChat() {
localStorage.setItem("chat", JSON.stringify(chatdata));
}
function loadChat() {
let json = localStorage.getItem("chat");
return JSON.parse(json);
}
localStorage是瀏覽器的標準配備,不過只有5-10MB的空間可用。
瀏覽器使用 File System Access API 就能存取檔案系統了。
原來如此,學到了~以前沒用過。
謝謝指點~
認真來說,這個問題的答案。我在其它篇說過不下10次過就是了。
簡單來說,看起來您還沒搞清楚何謂「前端」何謂「後端」
這很常是新手犯的毛病。
因為大多數的開發,都是本機開發。對初學者來說。
常常會將「前端」「後端」給搞混在一起。
畢竟都在同一台機器。常常會誤會。
再來第二種誤會。就是將 nodejs 誤會成「前端」
認真來說,它算是「後端」
最後再說明一件事。基於「本機安全性原則」
沒有任何一種前端語言。可以無條件的取用本機端的資源。
而是有限制條件下的取用。這是基於安全因素。
畢竟,你也不想在跑別人的網頁。就將自已電腦的檔案被自動的上傳取用吧。
以上消化一下吧。我不確定你能理解多少