Попытка связать функцию в отдельном файле JS с моим индексом, но часть функции пропускается, возвращается к методу index.js app.post и, наконец, возвращается к запросу db, который пропускается вдругой файл JS.
sales.js =
const sqlite3 = require('sqlite3').verbose()
const db = new sqlite3.Database('./database/stock.db', (err) => {
if (err) return console.error(err.message)
console.log('Connected to the "stock.db" SQlite database.')
})
module.exports = {
sale: function(formData, cartlist) {
const item = parseInt(formData, 10)
console.log(item)
const sql = "SELECT name, price FROM products WHERE barcode_id = " + item + ";"
console.log(sql)
console.log("test1")
db.all(sql, (err, data) => {
if(err) console.error(err.message)
console.log("test2")
cartlist = cartlist.concat(data)
console.log(cartlist)
})
console.log("test3")
return cartlist
}
}
index.js (соответствующие части) =
const sales = require('./sale.js')
.,,.
var cartlist = []
app.post('/sales', async(req, res) => {
const formData = String(req.body.Barcode)
cartlist = await sales.sale(formData, cartlist)
console.log(cartlist)
res.render('cart', {purchases: cartlist})
})
.,.
У меня есть тесты, чтобы показать порядок, и test1 сначала регистрируется, затем test3, а затем возвращается к test2, показывая, что он выпрыгивает, а затем возвращается снова.Не знаком с SO форматированием или Node.js, поэтому заранее извиняюсь.Я предполагаю, что это несколько связано с функциями обратного вызова, но мне еще предстоит полностью понять, как они работают.