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
    }
  }
}

results matching ""

    No results matching ""