【问题标题】:how can i simplify this query code its too long?我怎样才能简化这个查询代码太长了?
【发布时间】:2017-02-08 02:23:56
【问题描述】:

谁能帮我简化这段代码.. 我需要使用存储过程缩短或简化查询代码,但我仍然需要在“()”内指明详细信息.. 请帮助我在 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);
 }
 });

【问题讨论】:

    标签: javascript mysql node.js express


    【解决方案1】:

    以下可能会有所帮助:

    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
                });
            });
        });
    });

    【讨论】:

    • 使用该代码时,我收到此 ER_BAD_FIELD_ERROR: Unknown column 'test1' in 'field list'
    • 我的错 :) 只需将模板变量括在引号中
    • 有没有一种方法可以删除 CALL test3(“此处”)中的变量并用单个变量之类的东西进行更改?
    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2016-09-24
    • 2023-03-05
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多