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)。

另一种方法是按照项目网站上的说明指定一个承诺库。

专业提示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 下运行它,它会Minimum Node.js version required by pg-promise is 4.x它的 loader中抛出。

更新 - 2

6.7.0 及更高版本需要 Node.js 4.5.0 作为最低要求。

于 2016-06-01T11:21:23.387 回答