如何解决pg-promise错误“必须指定promise库”。

我在ExpressJS中使用pg-promise创build了一个基本的API来与我的PostgreSQL数据库进行交互。 在Windows上运行时,它工作正常。 然后我把它移动到Ubuntu 15.04,但是当我尝试启动它时会得到以下错误:

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

抛出新的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版本很旧。

我build议你升级Node.js,例如使用LTS版本(4.x)。

另一种方法是按照项目网站的指示指定承诺库。

专业提示 : nvm是一个很好的解决scheme来pipe理Node.js的版本。

更新 – 1

从库的5.6.0版开始,它不再支持Node.js 0.10.x和0.12.x,要求Node.js 4.x作为新的最小值。

因此,如果您没有指定任何自定义承诺库,则该错误已被折旧,因为该库将始终成功地默认为ES6 Promise。

如果你尝试在4.0以前的Node.js下运行它,它会抛出Minimum Node.js version required by pg-promise is 4.x

更新 – 2

版本6.7.0和更高版本要求Node.js 4.5.0最低。