首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理节点-postgres查询

管理节点-postgres查询
EN

Stack Overflow用户
提问于 2013-07-31 08:40:11
回答 2查看 178关注 0票数 2

我已经阅读了节点-postgres的API文档。

它建议我们使用pg对象来创建池客户机。在pg.connect api文档中说:

connect方法从客户端池检索客户端,或者如果所有池客户端都繁忙且池未满,则connect方法将创建一个新客户端,直接将其第一个参数传递给客户端构造函数。

因此,根据建议,使用pg.connect是否意味着“使用pg对象创建池客户机”?如果不是,这到底意味着什么?

在我的实现示例中,我在我的路由中进行了几个查询:

代码语言:javascript
复制
app.get('/post', function(req, res) {
  pg.connect(dbconfig, function(err, client, done) {
    client.query('SELECT * FROM post', function(err, result) {
      res.render('post/list', { posts: result.rows });
    });
  });
});

app.get('/post/new', function(req, res) {
  res.render('post/new');
});

app.post('/api/v1/post', function(req, res) {
  var b = req.body;
  pg.connect(dbconfig, function(err, client, done) {
    client.query('INSERT INTO post (title, content) VALUES ($1, $2)', 
      [b.title, b.content], 
      function(err, result) {
        done();
        res.redirect('/post');
    });
  });
});

这是每次我想查询时调用pg.connect的正确方式吗?如果没有,还有什么更好的办法呢?

EN

回答 2

Stack Overflow用户

发布于 2013-11-08 02:15:21

根据pg.connect()处理池连接的文档,它看起来确实如此。不过,我建议您最好做一件事(假设您只有一组应用程序正在使用的凭据)。

如果我考虑这样做,我将致力于节省重复的工作/击键/错误的机会,并将pg.connect()包装在某种函数中,您可以使用它返回客户端。这将使您能够做以下更多的事情:

代码语言:javascript
复制
app.get('/post', function(req, res) {
  db.run( function(client) {
    client.query('SELECT * FROM post', function(err, result) {
      res.render('post/list', { posts: result.rows });
    });
  });
});

然而,考虑到你做事的方式,我不相信你能从这种方法中得到很多好处,所以我不认为你的方法有什么问题。

票数 0
EN

Stack Overflow用户

发布于 2014-08-16 08:53:36

现在这可能有点过时了,但是看看下面这个:https://github.com/aichholzer/Bodega

它将处理任何担心,并使您的编码经验更愉快一点。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17965518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档