2017-02-13 49 views
0

我正在閱讀文檔並試圖找出連接池。我在做連接池嗎?使用node-postgres庫

文檔說池應該長住,所以我創建了一個config/db.js文件,其中創建pool和導出:

/* src/config/db.js */ 
const pg = require('pg'); 

const dbConfig = { 
    host: process.env.DB_HOST, 
    port: process.env.DB_PORT, 
    user: process.env.DB_USER, 
    password: process.env.DB_PASS, 
    database: process.env.DB_DATABASE, 
    max: 25, 
    idleTimeoutMillis: 5000 
}; 

const pool = new pg.Pool(dbConfig); 

module.exports = { 
    pool 
}; 

我有一大堆的路線和控制器。例如,我有/markers端點,它在控制器中有幾個方法。 在控制器文件中,我從config/db.js導入池並使用它。這可以嗎?

const pool = require('../config/db').pool; 

const create = function (req, res, next) { 
    const data = { 
    created_by: req.body.createdBy, 
    title: req.body.title, 
    description: req.body.description, 
    lat: req.body.lat, 
    lng: req.body.lng 
    }; 

    pool.connect((err, client, done) => { 
    if (err) { 
     done(); 
     // console.log(err); 
     return res.status(500).json({ success: false, data: err }); 
    } 
    client.query(
     'INSERT INTO markers(created_by, title, description, lat, lng, geography)\ 
     values($1, $2, $3, $4::decimal, $5::decimal, ST_SetSRID(ST_MakePoint($5::decimal, $4::decimal), $6))', 
     [ 
     data.created_by, 
     data.title, 
     data.description, 
     data.lat, 
     data.lng, 
     4326 
     ], 
     function(err, res) { 
     done(); 
     if (err) { 
      // console.log(err); 
     } 
     } 
    ); 
    return res.status(200).json({ success: true }); 
    }); 
}; 

而且,我怎麼檢查插入成功,這樣我就不會僅僅返回一個200次的成功,如果有不知道如果插入成功,沒有錯誤?

回答

1

這是正確的。

用於檢查錯誤,你可以看到正確的,在那裏你檢查if (err)回調,在情況下,沒有犯錯的是回報率,意味着插入是成功的。

+0

謝謝!但是因爲我無法從創建函數訪問'res',所以如何最好地處理? – user1354934