Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- router.post('/notes2', function(req, res) {
- var note_post = {
- title: req.body.title,
- body: req.body.body,
- author_id: req.body.author_id
- };
- // get a connection from the pool
- createConnection(function(err, connection) {
- if (err) {
- console.log(err);
- res.send({ success: false, message: 'database error', error: err });
- return;
- }
- // set up error listener for the connection
- connection.on('error', function(err) {
- console.log(err);
- res.send({ success: false, message: 'database error', error: err });
- return;
- });
- // create a common rollback function
- var rollback = function(err, message) {
- console.log(err);
- connection.rollback(function() {
- connection.release();
- });
- res.send({ success: false, message: message, error: err });
- }
- // start a transaction
- connection.beginTransaction(function(err) {
- if (err) {
- return rollback(err, 'start transaction error');
- }
- // execute a query
- connection.query("INSERT INTO notes SET ?", note_post, function(err, result) {
- if (err) {
- return rollback(err, 'query error');
- }
- var insertId = result.insertId;
- // execute another query
- connection.query("UPDATE authors SET num_notes = num_notes + 1 WHERE id = ?", req.body.author_id, function(err, result) {
- if (err) {
- return rollback(err, 'query error');
- }
- // commit the transaction
- connection.commit(function(err) {
- if (err) {
- return rollback(err, 'commit error');
- }
- connection.release();
- res.setHeader('Location', '/test/notes/' + insertId);
- res.status(201).send({ success: true });
- });
- });
- });
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement