2016-09-19 88 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你有这里的通用错误处理程序,对于任何错误。而且你没有指定哪个特定的错误,如果你想处理的话。 –