2016-09-19 96 views
0

我對js很新。我想將值插入到我的錯誤表中,例如時間戳和節點js中返回的錯誤類型。我當前的節點js代碼插入值到數據庫,但我想在錯誤塊的東西。以下是我的node.js代碼。
節點js Postgresql - 錯誤時插入表

var pg = require('pg'); 
var transaction = require('pg-transaction'); 
var die = function(err){ 
    if (err) throw err; 
}; 
exports.handler = function(event, context) { 
    var pgClient = new pg.Client({ 
    user: 'XXXX', 
    database: 'XXXX', 
    password: 'XXXX', 
    port: 5439, 
    host: "XXXXX" 
    }); 
    pgClient.connect(); 
    var tx = new transaction(pgClient); 
    tx.on('error',die); 
    tx.begin(); 
    tx.query("truncate table tbl;"); 
    tx.query("insert into tbl..................;"); 
    tx.query("select * from tbl",function(err,result) { 
     console.log("XXXX: "+JSON.stringify(result)); 
    }); 
    tx.query("truncate table;"); 
    tx.commit(function(){ 

     pgClient.end(function(err) { 
     if(err) throw err; 
     console.log("Successful"); 
     }); 
    }); 
}; 


插入error_log中(選擇GETDATE(),ERROR_TYPE);
那麼,我在哪裏寫我的SQL?

回答

0

做得當,通過pg-promise,有自動交易:

var pgp = require('pg-promise')(); 

var db = pgp({ 
    user: 'XXXX', 
    database: 'XXXX', 
    password: 'XXXX', 
    port: 5439, 
    host: "XXXXX" 
}); 

exports.handler = function (event, context) { 
    db.tx(function (t) { 
     return t.batch([ 
      t.none('truncate table tbl'), 
      t.none('insert into tbl..................'), 
      t.any('select * from tbl'), 
      t.none('truncate table tbl') 
     ]); 
    }) 
     .then(function (data) { 
      console.log("XXXX: ", JSON.stringify(data[2])); 
     }) 
     .catch(function (error) { 
      console.log(error); 
     }); 
}; 
+0

我只是想寫信給我的表,無論是否存在錯誤。不知道我在哪裏寫我的錯誤處理sql –

+0

@RedshiftGuy你有這裏的通用錯誤處理程序,對於任何錯誤。而且你沒有指定哪個特定的錯誤,如果你想處理的話。 –