/ / Como organizar pastas e arquivos no projeto Meteor? - javascript, meteoro

Como organizar pastas e arquivos no projeto Meteor? - javascript, meteoro

Eu estou tentando entender o Meteor enquanto eu crio um projeto e acho algumas coisas um pouco difíceis de entender até agora.

1- Quando eles dizem que eu posso criar um server e um client pasta, onde exatamente eu estou destinado a fazê-lo? Irmão de .meteor ? E tudo estará no escopo do cliente ou do servidor quando o aplicativo for iniciado ou eu tiver que fazer outra coisa? Se eu criar um foo.js e um foo função dentro dela em client pasta, posso apenas ligar foo() dentro Meteor.isClient e vai funcionar?

2- Eu preciso criar uma pasta de upload para que as pessoas possam fazer o upload de suas coisas (imagens). Então, onde eu devo fazer isso? Além disso, como posso obter o caminho absoluto para o meu projeto e encontrar este upload pasta dentro?

Durante minhas tentativas, tentei o seguinte:

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

Mas __ROOT_APP_PATH__ é .meteorlocalbuildprogramsserver. Muito escondido né ?!

3- Vi algumas pessoas fazendo upload e salvando arquivosno MongoDB diretamente. Isso é algo que geralmente não fazemos com bancos de dados relacionais. Nós movemos o arquivo para uma pasta conhecida em um CDN ou em nosso próprio disco e salvamos o hash ou o nome daquele arquivo para que possamos encontrá-lo facilmente. Ele não é incentivado com Meteor + MongoDB? Por que eu salvaria o arquivo em si no Mongo em vez de movê-lo para uma pasta?

Respostas:

3 para resposta № 1

não há qualquer maneira específica de fazer, mas meteoros recomendam fazê-lo desta forma http://docs.meteor.com/#/basic/filestructure


3 para resposta № 2

ESTRUTURA DE PASTA:

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

esta é a estrutura básica de pastas para o projeto de meteoros que eu sigo. Para mais referência ou Documentação. Para qualquer pergunta, não hesite em perguntar nos comentários.