繁体   English   中英

如何使用节点 js 将 object 的数组插入到表中

[英]How to insert array of object to table with node js

我在原始 Postman 有一系列 object。 我想要那个插入到我的桌子上。 我对制作 controller 和 model 感到困惑。 这是我的代码

postman我的 postman 图像

我的 controller 代码:

module.exports = {
    postOrder: async (request, response) => {
        try {
            const setData = {
                // id_history : request.body,
                id_product : request.body.orders.id_product,
                product_name : request.body.orders.product_name,
                image : request.body.orders.image,
                ppn : request.body.orders.ppn,
                price : request.body.orders.price
            }
            const result = await postOrder(setData)
            return helper.response(response, 201, "Create Category Success", result);
        } catch (error) {
            return helper.response(response, 400, "Bad Request", error);
        }
    }
}

我的 model 代码:

module.exports = {
    postOrder: (setData) => {
        return new Promise((resolve, reject) => {
            connection.query("INSERT INTO order SET ?", setData, (error, result) => {
                console.log(result)
                if(!error) {
                    const newResult = {
                        ...setData
                    }
                    resolve(newResult)
                } else {
                    reject(new Error(error))
                }
            })
        })
    }
}

如果解释不清楚,我很抱歉。 如果解释不清楚,请告诉我

我倾向于使用占位符构建查询,然后传入值,它可能会按照你的方式工作,但我不确定它是否是一个准备好的查询。

module.exports = {
  postOrder: setData => new Promise((resolve, reject) => {
    
      let keys = Object.keys(setData)
      let values = Object.values(setData)
      
      let sql = `
        INSERT INTO order (
          ${keys.join(',')}
        ) VALUES (
          ${keys.fill('?', 0, keys.length).join(',')}
        )
      `
      
      connection.query(sql, values, (error, result) => {
        if (error) reject(new Error(error))

        resolve(orderData)
      })
    })
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM