Usando o API Store
Como utilizamos MongoDB para ser nosso banco de dados, para criar uma collection, basta se criar um arquivo JavaScript com o nome da collection na pasta store
na raiz do projeto. Eis a especificação de como esse arquivo:
// C:\meu-projeto\store\posts.js
// Logo, o nome dessa collection é `posts`.
module.exports = {
/**
* Essa função é executada sempre que um documento está para ser criado.
* Ela deve retornar Boolean, se a operação for válida, então o documento
* é criado na collection.
*
* - Por exemplo, para permitir que só usuários autenticados possam criar
* documentos dessa collection: `create: user => !!user`
*
* ESSA FUNÇÃO PRECISA SER OBRIGATORIAMENTE DEFINIDA PARA A CRIAÇÃO OCORRER.
*
* @param {Object} user
* @param {mongodb.Db} db
*
* @return {Boolean}
*/
create(user, db) {
return true
},
/**
* Essa função é executada sempre que um/vários documento(s) está(ão) para ser obtido(s).
* Ela deve retornar Boolean, se a operação for válida, então o(s) documento(s)
* é(são) obtido(s) da collection.
*
* - Por exemplo, para permitir que só usuários autenticados possam obter
* documentos dessa collection: `read: user => !!user`
*
* ESSA FUNÇÃO PRECISA SER OBRIGATORIAMENTE DEFINIDA PARA A LEITURA OCORRER.
*
* @param {Object} user
* @param {Object} document
* @param {mongodb.Db} db
*
* @return {Boolean}
*/
read(user, document, db) {
return true
},
/**
* Essa função é executada sempre que um documento está para ser editado.
* Ela deve retornar Boolean, se a operação for válida, então o documento
* é editado na collection.
*
* - Por exemplo, para permitir que só usuários autenticados possam editar
* documentos dessa collection: `create: user => !!user`
*
* ESSA FUNÇÃO PRECISA SER OBRIGATORIAMENTE DEFINIDA PARA A EDIÇÃO OCORRER.
*
* @param {Object} user
* @param {Object} document
* @param {mongodb.Db} db
*
* @return {Boolean}
*/
write(user, document, db) {
return true
},
/**
* Essa função é executada sempre que um documento está para ser removido.
* Ela deve retornar Boolean, se a operação for válida, então o documento
* é removido na collection.
*
* - Por exemplo, para permitir que só usuários autenticados possam remover
* documentos dessa collection: `remove: user => !!user`
*
* ESSA FUNÇÃO PRECISA SER OBRIGATORIAMENTE DEFINIDA PARA A REMOÇÃO OCORRER.
*
* @param {Object} user
* @param {Object} document
* @param {mongodb.Db} db
*
* @return {Boolean}
*/
remove(user, document, db) {
return true
},
/**
* A propriedade `validate` permite que você descreva quais campos são permitidos nos
* documentos dessa collection.
*/
validate: {
campo1: {
type: 'string'|'number'|'regexp'|'object'|'array'|'email',
isEmail: true|false,
isRequired: true|false,
minChars: Number,
maxChars: Number,
transform: function (value) {}
}
},
/**
* A propriedade `uploads` especifica que arquivos o usuário pode enviar ao servidor.
*/
uploads: {
thumbnail: {
maxSize: 5000000, // Em bytes
extensions: ['jpg', 'png'] // Extensões permitidas
}
}
}