我使用 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)。
另一种方法是按照项目网站上的说明指定一个承诺库。
专业提示: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 下运行它,它会Minimum Node.js version required by pg-promise is 4.x
在它的 loader中抛出。
6.7.0 及更高版本需要 Node.js 4.5.0 作为最低要求。