2017-02-08 210 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(“这里”)里面,用一个变量来改变它? –

相关问题