编辑:问题是console.log(theID)在查询回调中分配值之前执行。所以我现在的问题是如何让查询回调首先运行,以便在返回之前将ID分配给一个值
这是Server.js。
app.get('/testtwilio2', function(req,res,next){
var theID;
var p;
var config;
var pat = {name: req.query.name, number: req.query.number, date:req.query.date, reminded: 0, paid:0 };
connection.query('INSERT INTO patientlist SET ?', pat, function(err,res){
if(err) throw err;
theID = res.insertId
console.log('Last insert ID:', theID); //returns correct value
p = {id: theID, name: req.query.name, date: req.query.date, number: req.query.number, reminded: req.query.reminded};
var fs = require('fs');
var configFile = fs.readFileSync('./Public/worked.json');
var config = JSON.parse(configFile);
var object = req.query.name;
config.push(p);
var configJSON = JSON.stringify(config);
fs.writeFileSync('./Public/worked.json', configJSON);
});
console.log(theID); //this executes first meaning theID hasn't been assigned a value
return res.json(theID);
});