那麼,無法解決路徑問題。 Assets.getText()取決於私人文件夾,也不會阻止服務器重新啓動。但是找到了一種替代解決方案,您可以將文件上傳到項目應用程序中的任何文件夾並從中讀取。
//在客戶端
Meteor.call('getKmlString', kml_file_name, function(error, kml_string) {
if (error) {
console.log('ERROR in getting kml string');
console.log(error);
} else {
console.log('GOT Kml String');
geoXml.parseKmlString(kml_string);
}
});
//在服務器端
Meteor.startup(function() {
// code to run on server at startup
return Meteor.methods({
getKmlString: function(kml_file_name) {
var content = '';
var fs = Npm.require('fs');
var encoding = encoding || 'binary';
var chroot = Meteor.chroot || 'uploads';
var path = chroot + (path ? '/' + path + '/' : '/');
var content = fs.readFileSync('../../../../../' + path + kml_file_name, "utf-8", function read(err, data) {
if (err) {
throw err;
}
});
return content;
},
});
});
我已經試過Assets.getText()和它返回文件內容作爲一個字符串。但是當我使用時,geoXml.parseKmlString(kml_string),kml沒有顯示在地圖上。我得到「Uncaught TypeError:不能調用方法'getSouthWest'未定義的」錯誤。 – anoop
「Assets.getText()」中的字符串是什麼樣的?它是否爲' ... ''的形式?導致錯誤的地址是特定點(街道名稱和號碼)還是區域?都? –
該字符串包含「 ... 」標籤,但它出現在<?xml version =「1.0」encoding =「UTF-8」?> –
anoop