2015-12-23 62 views
0

我在使用coffeescript時遇到了一些基本問題。我正在嘗試讀取JSON文件,但它不起作用。我得到一個Rails ReferenceError:require未定義(fs)

ReferenceError: require is not defined

指向此行

fs = require ("fs") 

我的整個腳本是這個(routes.js.coffee):

loadFiles = -> 
    fs = require "fs" 
    fs.readFile 'A4.json', (err, geoData) -> fileText = geoData 

ready = -> 
    geoData = loadFiles() #Guess this line is wrong but I need to focus on the other error 
    map = L.map('map').setView([5.81107293, -73.030279174], 13) 

    L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png? access_token={accessToken}', { 
attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>', 
maxZoom: 18, 
#Some irrelevant code... 
}).addTo(map); 

$(document).ready(ready) 
$(document).on('page:load', ready) 

我一直在閱讀其他相關的問題發佈在這裏,但建議的解決方案沒有爲我工作(訂購進口)。我的application.js是這樣的:

//= require jquery 
//= require jquery_ujs 
//= require leaflet 
//= require turbolinks 
//= require bootstrap-sprockets 
//= require_tree . 

在此先感謝

回答

0

如果你真的想用require在客戶端,那麼你應該考慮增加require.js使用Require.js

在這種情況下,具體來說,它看起來像你只是試圖在一個JSON文件中獲取一些數據dinamically。你可以嘗試這樣的事:

ready = -> 
    $.get "A4.json", (geoData)-> 
    fileText = geoData 
    map = L.map('map').setView([5.81107293, -73.030279174], 13) 
    # ... 
+0

我不知道這是另一種選擇!,謝謝你的建議,我會用它來代替...你確定這是正確的代碼?,我' m得到一個** ReferenceError:geoData沒有定義** – user2782149

+0

不,我不確定。這段代碼重點展示瞭如何使用jquery的get方法。這個geoData只是從該文件返回的數據。如果如果說你沒有定義那麼也許你的縮進是不正確的。試圖把它放在更多的兩個空格右邊 – Tofani

+0

實際上這個geoData代碼,至少在你的發佈代碼中,沒有被使用。你真的需要閱讀這些數據嗎? – Tofani

相關問題