Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将Node.js连接到现有Postgres?错误:未处理的承诺拒绝_Javascript_Node.js_Postgresql - Fatal编程技术网

Javascript 如何将Node.js连接到现有Postgres?错误:未处理的承诺拒绝

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

我有一个现有的带有Rails的postgresql数据库,现在我正在制作一个Node.js应用程序,它使用相同的数据库。我的数据库中已经有用户了,现在我想列出所有用户

我成功创建了一个express应用程序,然后我做了如下操作:

✗ 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"
  }
]