pg-promise を使用して ExpressJS で基本的な API を作成し、PostgreSQL データベースとやり取りしました。Windowsで実行すると、問題なく動作します。その後、Ubuntu 15.04 に移動しましたが、起動しようとすると次のエラーが発生します。
/node_modules/pg-promise/lib/promise.js:46
throw new TypeError("Promise ライブラリを指定する必要があります。");
pg-promise を使用して ExpressJS で基本的な API を作成し、PostgreSQL データベースとやり取りしました。Windowsで実行すると、問題なく動作します。その後、Ubuntu 15.04 に移動しましたが、起動しようとすると次のエラーが発生します。
/node_modules/pg-promise/lib/promise.js:46
throw new TypeError("Promise ライブラリを指定する必要があります。");
ソースを使え、ルーク!
エラーメッセージからファイルを見てください:
if (typeof Promise === 'undefined') {
// ES6 Promise isn't supported, NodeJS is pre-0.12;
throw new TypeError("Promise library must be specified.");
}
Ubuntu ディストリビューションの Node.js のバージョンが非常に古い。
Node.js をアップグレードし、LTS バージョン (4.x) を使用することをお勧めします。
別の方法として、プロジェクトの Web サイトで指示されているようにpromise ライブラリを指定することもできます。
プロのヒント: nvmは、Node.js のバージョンを管理する優れたソリューションです。
ライブラリのバージョン 5.6.0 以降では、Node.js 0.10.x および 0.12.x がサポートされなくなり、新しい最小値として Node.js 4.x が必要になります。
その結果、カスタム promise ライブラリを指定しない場合、ライブラリは常に正常にデフォルトで ES6 Promise になるため、そのエラーは減価償却されました。
また、4.0 より前の Node.js で実行しようとすると、 loaderMinimum Node.js version required by pg-promise is 4.x
内でスローされます。
バージョン 6.7.0 以降では、最低限 Node.js 4.5.0 が必要です。