这是我第一个使用MySQL和NodeJS的项目,我已经习惯了Mongo,所以在这里我可能会做一些愚蠢的事情。在本地,一切正常(使用MySQL),但是当我将以下代码部署到托管(使用MariaDB)的主机时,只有父查询插入到表中(潜在顾客)。另一个表保持为空。另一个问题是,部署NodeJS时我无权访问它,但是据我所知,嵌套查询从未被调用。
var mysql = require('mysql');
global.db = mysql.createPool({
host : 'localhost',
user : 'client',
password : '******',
database : 'db'
});
router.post('/', function(req, res){
const d = req.body
let subscribe = (d.subscribe ? 1 : 0)
global.db.getConnection((err, conn) => {
if (err) {
res.end(JSON.stringify(err));
} else {
let lead = [null, d.voornaam, d.achternaam, d.email, d.postcode, d.opmerkingen, d.soort, subscribe]
let sql = 'INSERT INTO leads VALUES ?';
conn.query(sql, [[lead]], (err, results) => {
if (err) {
res.end(JSON.stringify(err));
conn.release();
} else {
const lead_id = results.insertId
d.types.forEach(w => {
let wens = [null, lead_id, w.woningType, w.slaapkamers, w.prijs, w.oplevering]
let sql = 'INSERT INTO wensen VALUES ?';
conn.query(sql, [[wens]], (err, results) => {
if(err) {
res.end(JSON.stringify(err));
conn.release();
}
})
})
res.end('True');
conn.release();
}
})
}
})
});
答案 0 :(得分:0)
检查语法。请注意:
'INSERT INTO leads VALUES (?)'
这没告诉你吗?
if (err) { res.end(JSON.stringify(err)); ... }