2015-07-22 2 views
2

Я пытаюсь понять Метеор, когда создаю проект, и я нахожу некоторые вещи, которые трудно понять до сих пор.Как организовать папки и файлы в проекте Meteor?

1 Когда они говорят, что я могу создать папку server и client, где именно я намерен это сделать? Братство .meteor? И будет ли все в масштабах клиента или сервера при запуске приложения или мне нужно сделать что-то еще? Если я создам foo.js и функцию foo внутри него в папке client, могу ли я просто позвонить foo() в Meteor.isClient и он будет работать?

2- Мне нужно создать папку для загрузки, чтобы люди могли загружать свои материалы (изображения). Итак, где я должен это делать? Кроме того, как я могу получить абсолютный путь к моему проекту и найти эту папку upload внутри?

Во время моих попыток я попробовал следующее:

fs = Meteor.npmRequire('fs'); 
__ROOT_APP_PATH__ = fs.realpathSync('.'); 

Но __ROOT_APP_PATH__ является .meteor\local\build\programs\server. Довольно скрыто?

3- Я видел, как некоторые люди загружали и сохраняли файлы на MongoDB напрямую. Это то, что мы обычно не делаем с реляционными базами данных. Мы перемещаем файл в известную папку на CDN или на нашем собственном диске и сохраняем хэш или имя этого файла, чтобы мы могли легко найти его. Разве это не поощряется с помощью Meteor + MongoDB? Почему я должен сохранить файл на Mongo, а не переместить его в папку?

ответ

3

не какой-либо конкретный способ сделать, но метеорит рекомендую делать этот путь http://docs.meteor.com/#/basic/filestructure

+0

Я создал файл JS в корневой папке, объявил функцию и вызвал ее, когда клиент запущен. Говорит, что это не определено –

3

FOLDER СТРУКТУРА:

both/ (OR lib/)   -- common code for server and client 
    |- collections/  -- declare collections (e.g Employer = new Meteor.Collection("employer");) 
    |- router /  -- router code(e.g Router.route(..)) 

client/     -- client side code 
    |- global/    -- all global variable for client 
    |- helpers/   -- global helper for client (for all templates) 
    |- plugins/   -- all the plugins code(if you use any) 
    |- stylesheets/  -- css/less files 
    |- templates/   -- all templates 
     |- home.html  -- home template(html) 
     |- home.js  -- home template(js) 

public/     -- images/icons/fonts (meteor looking at this file) 

server/     -- server code 
    |- methods/   -- server methods/API (e.g Meteor.methods({...})) 
    |- publish/   -- publish code from server 

это основная структура папок для метеорного проекта, который я следовать. Для дальнейших reference или Documentation. Для любого вопроса, не стесняйтесь спрашивать в комментариях.

+0

Я создал папку под названием 'lib', внутри которой я поместил JS-файл и объявил' foo'. Когда я называю его в «Meteor.isClient», он говорит: «foo is undefined» –

+0

'lib' или' both' похожи, и это родительский каталог. Я имею в виду sibling из '.meteor' .. это общий код для метеоритного сервера и клиента. И я очень хочу, чтобы он выполнялся до 'client' и' server'. Если вы следуете структуре папок и коду, который вы используете в клиентском каталоге как клиентский код. Поэтому нет необходимости снова использовать «Meteor.isClient». – iamhimadri

+0

Я имею в виду, что я создал 'function foo() {}' inside 'foo.js' в'/client' sibling '.meteor' и назывался' foo() 'в моем основном файле внутри' Meteor.isClient' с остаток кода. Он говорит: «foo is undefined» –

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