Javascript 如何将Node.js连接到现有Postgres?错误:未处理的承诺拒绝
我有一个现有的带有Rails的postgresql数据库,现在我正在制作一个Node.js应用程序,它使用相同的数据库。我的数据库中已经有用户了,现在我想列出所有用户 我成功创建了一个express应用程序,然后我做了如下操作:Javascript 如何将Node.js连接到现有Postgres?错误:未处理的承诺拒绝,javascript,node.js,postgresql,Javascript,Node.js,Postgresql,我有一个现有的带有Rails的postgresql数据库,现在我正在制作一个Node.js应用程序,它使用相同的数据库。我的数据库中已经有用户了,现在我想列出所有用户 我成功创建了一个express应用程序,然后我做了如下操作: ✗ npm install --save sequelize pg pg-hstore ✗ sequelize init index.js const express = require('express'); const logger = require('morg
✗ npm install --save sequelize pg pg-hstore
✗ sequelize init
index.js
const express = require('express');
const logger = require('morgan');
const bodyParser = require('body-parser');
const pg = require('pg');
var conString = 'postgres://localhost:5432/db_name';
var client = new pg.Client(conString);
const app = express();
client.connect(err => {
if (err) {
console.error('connection error', err.stack);
} else {
console.log('connected');
}
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.get('/', (req, res) => {
res.send(models.User.findAll);
});
const PORT = process.env.PORT || 5000;
app.listen(PORT);
在我的config.json
中,我有:
"development": {
"username": "my_username",
"password": null,
"database": "database_name",
"host": "127.0.0.1",
"dialect": "postgres"
}
我收到以下错误:未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于抛出不带catch块的异步函数内部,或拒绝未使用.catch()处理的承诺。
我可能错过了一大步,但我不知道这是什么,我以前从未这样做过。示例查询
const query = {
text: 'CREATE TABLE IF NOT EXISTS coverages ('+
'vaccine VARCHAR(64),' +
'country VARCHAR(255),' +
'region VARCHAR(255),' +
'year VARCHAR(4),' +
'value VARCHAR(12),' +
'PRIMARY KEY(vaccine, country, region, year, value))'
};
client.query(query)
.then(function(res) {
console.log(res);
})
.catch(function(err) {
console.log('\nError executing query', err.stack);
});
下面是一些使用的示例查询(我认为需要节点8+,因此请确保您的版本支持此功能): 如果您访问,您将得到以下回复:
[
{
"pg_val": "Hello from Postgres"
}
]
如果你去,比如说,你会得到这个:
[
{
"pg_val": "Hello from Postgres",
"parameter": "Al-josh"
}
]
希望我在代码中的注释已经清楚地说明了查询是如何工作的,这样您就可以根据自己的目的修改它们。如果没有,请提供有关表格的更多详细信息,我可以修改此答案
还要注意,我在这里使用pg.Pool连接到Postgres。这完全是你的问题的次要部分,但值得一读。让我们先尝试通过向客户端添加然后再添加catch块来捕获错误。connect()我稍微更改了代码,我连接了消息。仍在尝试找出如何执行查询我用表创建查询回答。我如何在屏幕上(而不是在控制台中)呈现该查询?在app.get函数中执行查询,然后使用结果进行响应。
[
{
"pg_val": "Hello from Postgres",
"parameter": "Al-josh"
}
]