2

pg-promise を使用して ExpressJS で基本的な API を作成し、PostgreSQL データベースとやり取りしました。Windowsで実行すると、問題なく動作します。その後、Ubuntu 15.04 に移動しましたが、起動しようとすると次のエラーが発生します。

/node_modules/pg-promise/lib/promise.js:46

throw new TypeError("Promise ライブラリを指定する必要があります。");

4

1 に答える 1

2

問題

ソースを使え、ルーク!

エラーメッセージからファイルを見てください:

    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 のバージョンを管理する優れたソリューションです。

更新 - 1

ライブラリのバージョン 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内でスローされます。

更新 - 2

バージョン 6.7.0 以降では、最低限 Node.js 4.5.0 が必要です。

于 2016-06-01T11:21:23.387 に答える