2015-11-06 2 views
0

У меня вопрос о жестко закодированных массивах. Я смотрел на несколько ранее заданных вопросов о жестко закодированных массивах в надежде получить мой ответ таким образом. Но, по большей части, я не понимаю, ответы, и это только один, который, кажется, что это может иметь отношение:Предварительная обработка данных в жестко закодированном массиве

glob() to build array of files, or hardcode array? Speed is key, but automation is nice

Мой вопрос намного проще, хотя. У меня есть несколько рабочих таблиц в электронной таблице OpenOffice, которые я решил предварительно обработать в большом жестко запрограммированном массиве, который я буду хранить в моем «сервере». Для того, чтобы проверить это, я ставлю следующие строки кода в файл с именем «distances.js» и поместил этот файл в папку «сервера» непосредственно в моем приложении каталоге:

var distances = {}; 
    distances['Salt Lake City.Washington, DC'] = 2080; 
    distances['Salt Lake City.Cheyenne'] = 434; 
    distances['Salt Lake City.Denver'] = 536; 
    distances['Salt Lake City.Carson City'] = 534; 

Тогда я побежал следующую команду в моей консоли, чтобы увидеть, если я был бы в состоянии получить доступ к этим массиву значений в моем приложении:

console.log(distances['Salt Lake City.Carson City']); 

в результате я получил:

Uncaught ReferenceError: оценки не определены (...)


Я тогда покушений на вставить эти строки в обычном project.js файл внутри функции Meteor.startup внутри от Meteor.isServer:

if (Meteor.isServer) { 
    Meteor.startup(function() { 
     // code to run on server at startup 
     var distances = {}; 
     distances['Salt Lake City.Washington, DC'] = 2080; 
     distances['Salt Lake City.Cheyenne'] = 434; 
     distances['Salt Lake City.Denver'] = 536; 
     distances['Salt Lake City.Carson City'] = 534; 
    }); 
    } 

Это привело к той же ошибке.


У меня установлен «небезопасный» пакет в моем проекте, поэтому безопасность не должна быть проблемой. Я думаю, что мне просто не хватает чего-то фундаментального в том, где должен идти код, чтобы его видел компилятор/интерпретатор. Может ли кто-нибудь помочь?

Я вроде как ожидаю, что кто-то предложит мне поместить всю эту информацию в коллекцию. В настоящее время я не понимаю, почему было бы выгодно это делать, но, возможно, мне не хватает чего-то фундаментального в отношении полезности этого. Если да, может кто-нибудь объяснить или указать мне место, где я могу прочитать об этом для себя? Я проработал пару метеорологических учебников, в последнее время - Второе приложение для метеоров. И это отличные уроки, из которых я многому научился. Но я чувствую, что в моих знаниях все еще есть дыры, которые нужно решать, что является ярким примером.


Мой план для доступа к этим жестко закодированные элементы массива с помощью вызова функции, которая выглядит примерно так:

getDistance('Salt Lake City','Cheyenne') 

Потому что я не храним назад значения, например. расстояние от Шайенн до Солт-Лейк-Сити, я намерен настроить функцию так, чтобы, если конкретная ссылка не определена, она повернет два элемента вокруг и вызовет функцию снова таким же образом, но с этими инвертированными значениями (т. е. getDistance ('right', 'left') вместо getDistance ('left', 'right')).

Но в настоящее время я не могу даже пройти первый шаг.

Заранее благодарим за любую помощь, которую вы можете мне предоставить.

+0

Я не вижу переменную с именем 'score' в коде, который вы указали, и ваша консоль бросает ошибку, потому что она не определена. Итак, я начну с отслеживания «оценок», чтобы посмотреть, что там происходит. – MarkPlewis

+0

Извините, «оценки» - это то, что на самом деле говорит об ошибке, но я изменил код ради этого вопроса. То, что читается как «оценка» в исходном коде, на самом деле является «расстоянием» в этом коде. Таким образом, ошибка должна выглядеть следующим образом: Uncaught ReferenceError: * distance * не определен (...) Извиняюсь за недоразумение. И спасибо, что указали это. –

+0

Теперь мне интересно, может ли это быть локальная переменная, которая не видна за пределами определенной части кода. –

ответ

0

Ответ будет заключаться в использовании модуля fs для чтения данных из вашего текстового файла и в вашу коллекцию. Я все еще работаю над этим, но здесь есть дополнительная информация: Using nodejs fs module within my meteor app

Смежные вопросы