如何使用 ES6 语法导入 pg-promise?
How to import pg-promise using ES6 syntax?
我正在尝试使用 ES6 语法在 nodejs 服务器中设置 Postgres 数据库,但我认为我没有正确导入和初始化 pg-promise。如果我使用普通的 js 语法,我会执行以下操作:
// Create Database Connection
const pgp = require('pg-promise')({});
const db = pgp(config.db);
// Test connection
db.connect()
.then((obj) => {
console.log('Connected to database');
obj.done(); // success, release connection;
})
.catch((error) => {
console.error('ERROR:', error.message);
});
我正在使用 ES6 尝试执行以下操作,但连接只是挂起并且未完成或出错。
import pgPromise from 'pg-promise';
// Create Database Connection
const pgp = pgPromise({});
const db = pgp(config.db);
// Test connection
db.connect()
.then((obj) => {
console.log('Connected to database');
obj.done(); // success, release connection;
})
.catch((error) => {
console.error('ERROR:', error.message);
});
我搜索了 pg-promise 文档,但找不到任何关于使用 ES6 语法使用它的信息。关于我应该改变什么的任何想法?
我在文档中看到的是正确的。
正在使用初始化选项加载和初始化库:
const initOptions = {/* initialization options */};
const pgp = require('pg-promise')(initOptions);
或没有初始化选项:
const pgp = require('pg-promise')();
从连接创建数据库对象 pgp(connection, [dc]):
const db = pgp(connection);
对于ES6
或TypeScript
语法
import * as pgPromise from 'pg-promise';
const pgp = pgPromise({/* Initialization Options */});
const db = pgp('postgres://username:password@host:port/database');
有没有错误信息? Nodejs需要特定的条件来支持es模块,首先确保你已经正确引入了模块。
// index.mjs
import pgPromise from 'pg-promise';
const pgp = pgPromise({});
console.log(pgp);
然后用--experimental-modules
执行
node --experimental-modules index.mjs
更多详情https://blog.logrocket.com/es-modules-in-node-js-12-from-experimental-to-release/
好吧,这很愚蠢,但我发现我的问题只是我需要更新 pg-promise 依赖项。我使用的是 8.5.1 版本并升级到 10.5.7 解决了这个问题。对于其他 运行 涉及此问题的人,您可以使用问题中所写的 ES6 代码,只需确保您的 pg-promise 依赖项是最新版本即可。
我正在尝试使用 ES6 语法在 nodejs 服务器中设置 Postgres 数据库,但我认为我没有正确导入和初始化 pg-promise。如果我使用普通的 js 语法,我会执行以下操作:
// Create Database Connection
const pgp = require('pg-promise')({});
const db = pgp(config.db);
// Test connection
db.connect()
.then((obj) => {
console.log('Connected to database');
obj.done(); // success, release connection;
})
.catch((error) => {
console.error('ERROR:', error.message);
});
我正在使用 ES6 尝试执行以下操作,但连接只是挂起并且未完成或出错。
import pgPromise from 'pg-promise';
// Create Database Connection
const pgp = pgPromise({});
const db = pgp(config.db);
// Test connection
db.connect()
.then((obj) => {
console.log('Connected to database');
obj.done(); // success, release connection;
})
.catch((error) => {
console.error('ERROR:', error.message);
});
我搜索了 pg-promise 文档,但找不到任何关于使用 ES6 语法使用它的信息。关于我应该改变什么的任何想法?
我在文档中看到的是正确的。
正在使用初始化选项加载和初始化库:
const initOptions = {/* initialization options */};
const pgp = require('pg-promise')(initOptions);
或没有初始化选项:
const pgp = require('pg-promise')();
从连接创建数据库对象 pgp(connection, [dc]):
const db = pgp(connection);
对于ES6
或TypeScript
语法
import * as pgPromise from 'pg-promise';
const pgp = pgPromise({/* Initialization Options */});
const db = pgp('postgres://username:password@host:port/database');
有没有错误信息? Nodejs需要特定的条件来支持es模块,首先确保你已经正确引入了模块。
// index.mjs
import pgPromise from 'pg-promise';
const pgp = pgPromise({});
console.log(pgp);
然后用--experimental-modules
node --experimental-modules index.mjs
更多详情https://blog.logrocket.com/es-modules-in-node-js-12-from-experimental-to-release/
好吧,这很愚蠢,但我发现我的问题只是我需要更新 pg-promise 依赖项。我使用的是 8.5.1 版本并升级到 10.5.7 解决了这个问题。对于其他 运行 涉及此问题的人,您可以使用问题中所写的 ES6 代码,只需确保您的 pg-promise 依赖项是最新版本即可。