2016-05-24 46 views
8

嗨我對節點js相對較新,並且一直在環顧四周,但無法找到解決方案。我沒有檢查require JavaScript文件,它似乎沒有「readFileSync」的方法。也許我沒有一個合適的需求文件?我很難找到這個文件,到處都在討論它,但大多數人沒有發佈到哪裏去。readFileSync不是一個函數

我安裝了節點js並具有require.js文件。我當前的代碼是這樣的:

fs = require(['require'], function (foo) { 
//foo is now loaded. 
}); 
console.log("\n *STARTING* \n"); 
// Get content from file 
var contents = fs.readFileSync("sliderImages", 'utf8'); 

我有一點首先需要得到然而工作似乎加載需要javacscript文件。我一直在下列指南,我不知道爲什麼我得到這個錯誤:

遺漏的類型錯誤:fs.readFileSync不是一個函數

我已經嘗試了許多固定的,似乎無法弄清楚這一個。 任何幫助,不勝感激。謝謝。

+0

'fs'顯然不是Node的「fs」,否則'readFileSync'方法不會被定義,所以你在做錯了你的require?你爲什麼不做'var fs = require('fs')' – adeneo

+0

不要在Node中使用Require.js。 Node有它自己的使用CommonJS處理模塊的方式。正如adeneo所說,只要做'var fs = require('fs')'。 Require.js用於在客戶端加載模塊。 –

+0

當我嘗試使用時,我得到了以下錯誤:模塊名稱「fs」尚未加載上下文:_。使用require([])。所以我開始尋找解決方案。 – L1ghtk3ira

回答

6

Node.js不使用Require.js。 Require.js的構建方式使您可以在客戶端(在瀏覽器中)加載異步模塊。

Node.js使用CommonJS樣式模塊。使用CommonJS的你的代碼是這樣的:

var fs = require('fs'); 
console.log("\n *STARTING* \n"); 
var contents = fs.readFileSync("sliderImages", "utf8"); 

如果我們假設你在一個名爲main.js那麼你會在控制檯輸入此命令(確保你是在同一個目錄中的文件)的文件保存在此:

node main.js 

此代碼不會運行在瀏覽器中。 Node.js在服務器上運行。如果你想在瀏覽器端加載JSON文件,那麼你需要使用AJAX加載它。 There are numerous resources可用於向您顯示如何執行此操作。請注意,您必須從服務器運行頁面或啓用特殊標誌以從文件系統加載文件。

+1

謝謝我有點不確定如何使用node.js,清除了很多,謝謝! – L1ghtk3ira