SQL query
- Database 쿼리는 비동기 요청임
- controller에서 전달받은 데이터 객체를 이중배열 형태로 만들어 table에 bulk insert
post: (userId, orders, totalPrice, callback) => {
const str1 = `INSERT INTO orders (user_id, total_price) VALUES (?, ?)`;
let params = [userId, totalPrice];
db.query(str1, params, (error, result) => {
if (result) {
const str2 = `INSERT INTO order_items (order_id, item_id, order_quantity) VALUES ?`
const params = orders.map((order) => {
return [result.insertId, order.itemId, order.quantity]
});
return db.query(str2, [params], (error, result) => {
if (error) callback(error, null)
else callback(null, result)
})
} else {
callback(error, null)
}
})
}
- values (?, ?) or value ? : ?의 위치에 들어갈 내용을 변수 처리하여 줌
- params = []; 로 처리해서 넣어줘도 되고, 변수가 적은 경우에는 직접 넣어도 됨