项目作者: otaviopace

项目描述 :
Busca por CEP usando o melhor do JavaScript, callbacks
高级语言: JavaScript
项目地址: git://github.com/otaviopace/cep-callback.git
创建时间: 2018-08-14T02:32:55Z
项目社区:https://github.com/otaviopace/cep-callback

开源协议:

下载




CEP Callback









Known Vulnerabilities


Busca por CEP usando o melhor do JavaScript, callbacks

Todos sabem que hoje as Promises dominam o mundo do JavaScript. O que faz com que a utilização de callbacks seja algo do passado. Porém o oldschool é sempre mais legal, portanto essa biblioteca mostra como callbacks ainda podem ser utilizados e como você pode se sentir um hipster ao utilizá-las em 2019.

Features

  • Interface com callbacks seguindo o padrão da biblioteca padrão do Node.js
  • Possui a mesma interface tanto nos erros como nas respostas do projeto cep-promise
  • O projeto utiliza de var que é o jeito da massa de se criar variáveis em JavaScript, sim isso é uma feature

Como utilizar

Realizando uma consulta

Por ser multifornecedor, a biblioteca irá chamar o callback com o fornecedor que mais rápido lhe responder.

  1. var cep = require('cep-callback')
  2. cep('05010000', function (err, cepData) {
  3. console.log(cepData)
  4. })
  5. // {
  6. // "cep": "05010000",
  7. // "state": "SP",
  8. // "city": "São Paulo",
  9. // "street": "Rua Caiubí",
  10. // "neighborhood": "Perdizes",
  11. // }

Você também poderá passar o CEP como Inteiro

Em muitos sistemas o CEP é utilizado erroneamente como um Inteiro (e com isto cortando todos os zeros à esquerda). Caso este seja o seu caso, não há problema, pois a biblioteca irá preencher os caracteres faltantes na String, por exemplo:

  1. var cep = require('cep-callback')
  2. // enviando sem ter um zero à esquerda do CEP "05010000"
  3. cep(5010000, function (err, cepData) {
  4. console.log(cepData)
  5. })
  6. // {
  7. // "cep": "05010000",
  8. // "state": "SP",
  9. // "city": "São Paulo",
  10. // "street": "Rua Caiubí",
  11. // "neighborhood": "Perdizes",
  12. // }

Quando o CEP não é encontrado

Neste caso será retornado um "service_error" e por ser multifornecedor, a biblioteca irá retornar um erro no callback apenas quando tiver a resposta negativa de todos os fornecedores.

  1. var cep = require('cep-callback')
  2. cep('99999999', function (err, cepData) {
  3. console.log(err)
  4. })
  5. // {
  6. // name: 'CepPromiseError',
  7. // message: 'Todos os serviços de CEP retornaram erro.',
  8. // type: 'service_error',
  9. // errors: [{
  10. // message: 'CEP NAO ENCONTRADO',
  11. // service: 'correios'
  12. // }, {
  13. // message: 'CEP não encontrado na base do ViaCEP.',
  14. // service: 'viacep'
  15. // }, {
  16. // message: 'CEP não encontrado na base do Cep Aberto.',
  17. // service: 'cepaberto'
  18. // }]
  19. // }

Quando o CEP possui um formato inválido

Neste caso será retornado um "validation_error" e a biblioteca irá retornar um erro no callback, sem chegar a consultar nenhum fornecedor.

  1. var cep = require('cep-callback')
  2. cep('123456789123456789', function (err, cepData) {
  3. console.log(err)
  4. })
  5. // {
  6. // name: 'CepPromiseError',
  7. // message: 'CEP deve conter exatamente 8 caracteres.',
  8. // type: 'validation_error',
  9. // errors: [{
  10. // message: 'CEP informado possui mais do que 8 caracteres.',
  11. // service: 'cep_validation'
  12. // }]
  13. // }

Instalação

Browser usando CDN

  1. <script src="https://cdn.jsdelivr.net/npm/cep-callback/src/index.js"></script>

npm

  1. $ npm install --save cep-callback

Bower

  1. $ bower install --save cep-callback

Angular 2

  1. import * as cep from 'cep-callback'
  2. cep('05010000', function (err, cepData) {
  3. console.log(cepData)
  4. })

Como contribuir

Leia nosso guia de contribuição aqui

Contribuidores


@thor99

Autor


@otaviopace