郵便番号から、住所を検索できるモジュールです。
郵便番号データのソースは郵便事業株式会社(旧郵政省)提供のデータを使用しています。
postal-code-jpを使用している場合は、代わりにzip-code-jpを使用してください。
下記のコマンドでインストールできます。
npm install zip-code-jp
郵便番号から、住所の情報を返します。
import AddressResolver from 'zip-code-jp'; const resolver = new AddressResolver(); resolver.find('0010933').then((results) => { console.log(results[0].prefecture); // 都道府県 console.log(results[0].city); // 市区町村名 console.log(results[0].area); // 町域名 console.log(results[0].street); // 番地 });
キャッシュに利用するアダプタを変えることで、独自のキャッシュ処理に切り替えることができます。
デフォルトでは、MemoryCacheAdapterを使用して、メモリにキャッシュします。
import AddressResolver from 'zip-code-jp'; import { cache } from 'zip-code-jp'; const memoryAdapter = new cache.MemoryCacheAdapter(); const resolver = new AddressResolver(memoryAdapter); resolver.find('0010933').then((results) => { console.log(results[0].prefecture); // 都道府県 console.log(results[0].city); // 市区町村名 console.log(results[0].area); // 町域名 console.log(results[0].street); // 番地 });
CacheAdapterをサブクラス化して、独自のアダプタを使用できるようになります。
下記のメソッドを実装する必要があります。
- find(prefix) - 郵便番号の頭3桁を引数に取り、該当する辞書を返します。
- store(prefix, store) - 郵便番号の頭3桁と、辞書を受け取り、キャッシュします。
import AddressResolver from 'zip-code-jp'; import { cache } from 'zip-code-jp'; class CustomAdapter extends cache.CacheAdapter { constructor() { super(); } /** * Search the dictionary from the cache * * @param {string} prefix * @return Promise<Object> */ find(prefix) { } /** * Cache the dictionary * * @param {string} prefix * @param {Object} dict * @return Promise<void> */ store(prefix, dict) { } } const resolver = new AddressResolver(new CustomAdapter()); resolver.find('0010933').then((results) => { console.log(results[0].prefecture); // 都道府県 console.log(results[0].city); // 市区町村名 console.log(results[0].area); // 町域名 console.log(results[0].street); // 番地 });
npm run index
次のコマンドで、テストを実行できます。
npm install npm test