2017-02-08 272 views
0

任何人都可以幫助我簡化這個代碼.. 我需要使用存儲過程縮短或簡化查詢代碼,但仍然需要指出裏面的「()」的細節.. 請幫助我在這裏仍然是新的在node.js我怎樣才能簡化這個查詢代碼太長?

router.post('/test', function (req, res, next) { 
try { 
var reqObj = req.body; 
console.log(reqObj); 
req.getConnection(function (err, conn) { 
    if (err) { 
     console.error('SQL Connection error: ', err); 
     return next(err); 
    } else { 
      var employee_name = reqObj.employee_name; 
      var employee_contact = reqObj.employee_contact; 
      var employee_position = reqObj.employee_position; 

我想使這個查詢很短因爲我計劃輸入大量的數據,所以如何簡化這一個?

 var query = conn.query(
      "CAll test3("+"'"+employee_name+"','"+employee_contact+"','"+employee_position+"')", 
     function (err, result) { 
      if (err) { console.log(query) 
       console.error('SQL error: ', err); 
       return next(err); 
      } 
      console.log(result); 
      var test_Id = result.insertId; 
      res.json({ 
       "test_id": test_Id 
      }); 
     }); 
    } 
}); 
    } catch (ex) { 
console.error("Internal error:" + ex); 
return next(ex); 
} 
}); 

回答

0

的以下可能會有幫助:

router.post('/test', (req, res, next) => { 
 
    const makeQuery = data => { 
 
     var { employee_name, employee_contact, employee_position } = data; 
 

 
     var query = 'CAll test3(?, ?, ?)'; 
 
     var data = [employee_name, employee_contact, employee_position]; 
 

 
     return [query, data]; 
 
    }; 
 

 
    req.getConnection((err, conn) => { 
 
     if (err) return next(err); 
 

 
     conn.query(...makeQuery(req.body), (err, res) => { 
 
      if (err) return next(err); 
 

 
      res.json({ 
 
       "test_id": res.insertId 
 
      }); 
 
     }); 
 
    }); 
 
});

使用該代碼時
+0

我收到此ER_BAD_FIELD_ERROR:在「字段列表」 –

+0

我的壞:)只是用引號括起來 – quanfoo

+0

模板變量是存在的,我可以刪除這個變量的方式未知列「測試1」在CALL test3(「這裏」)裏面,用一個變量來改變它? –

相關問題