node express postgres - 为什么以及如何使用pg模块连接到数据库?

时间:2016-06-26 00:30:50

标签: node.js database postgresql express pg

我是node express和postgres的新手,并且想知道以下内容:

const pg=require('pg').native
const client=new pg.Clirnt('postgres ...')
  1. 什么是const?
  2. pg用于创建连接到Postgres数据库的客户端 - 正确吗?
  3. 如果是这样
  4. var db = new Sequelize('postgres://localhost:5432/mydb')

    也可以使用,或者我只是创建了一个数据库而没有连接它?

    1. 为什么我需要完全连接 - 做什么?
    2. 非常感谢!

2 个答案:

答案 0 :(得分:0)

  1. const在javascript中保持不变,这是在ES6规范中引入的。
  2. node-postgres是PostgreSQL的客户端。
  3. Sequelize正在使用node-postgres来处理PostgreSQL数据库,所以是的,简而言之,它将像node-postgres一样。
  4. 想象一下仓库,这是你的数据库,你有不同的货架,就是你的桌子,把不同的物品拿到或放入仓库,你需要的工人会按照你的指示 - INSERT someitem INTO items_shelf;。所以worker就像Sequelize或node-postgres一样。重要的是,仓库应该是开放的,否则,工人无法访问它,所以应该打开你的数据库。
  5. 希望我解释得足够可理解。

答案 1 :(得分:-1)

  

什么是const?

TLDR;无法重新分配的变量。范围与var相同。 es6的一部分。

  

pg用于创建连接到postgres数据库的客户端吗?

是的,请注意您需要npm install --save pg以及npm install --save sequelize。为方便起见,save标志将包添加到package.json文件中。

  

我只是创建了一个没有连接它的数据库吗?

这段代码应该实例化一个连接器 - 你没有修改过数据库,你也不知道连接是否正常工作。

  

为什么我需要完全连接?

pg库看起来使用连接池;这意味着您将其设置一次,然后根据需要重复使用它,它会为您处理连接。您现在连接,以便稍后可以对数据库运行查询。

这段代码连接到我的机器上本地运行的postgres实例,并测试它可以连接 - 按docs

const Sequelize = require('sequelize');
var sequelize = new Sequelize('postgres://localhost:5432/postgres');
sequelize.authenticate().then(() => {
    console.log('yay');
}).catch((e) => {
    console.log('nooo', e);
});