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 № 1nã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.