我使用$. post向服务器发出两个请求。在执行第一个请求后,我调用第二个请求,传递从第一个请求接收到的信息。问题是在第二个请求完成后,代码不工作,请求返回数据,我检查了。
对服务器的请求。
$("#start_search").click(function () {
$.post("/getLinks", {
searchText: $('#searchText').val(),
picSize: $('input[name="pic"]:checked').val(),
typeFile: $('input[name="file"]:checked').val(),
clicks: $('#numberOfPics').val()
},
function (data) {
//Work fine
console.log('Done!')
let json = JSON.parse(JSON.stringify(data));
for (let arr of json[0].arrs){
for (let path of arr[0]){
$.post("/setImg", {
path: path
}),
function (res){
//Dont work
console.log(JSON.parse(JSON.stringify(res)));
}
}
}
});
});
服务器端的第二个请求。
app.post("/setImg", (req, res) => {
let filepath = req.body.path;
BD.start(filepath, function (err, result) {
if (err) console.log(err)
res.json([{
result: result
}])
})
})
BD.start.
function SetToImgDB (filepath, callback){
connection.query(`INSERT INTO imgs (filepath) VALUES ('${filepath}')`, (err, results) => {
if (err) return callback(err);
createObject(results.insertId, function (err, result) {
if (err) return callback(err)
return callback(null, result);
});
})
}
function createObject (id, callback) {
connection.query(`insert into objects (date, img_src, origin, preview, rating) values ('${(new Date()).toISOString().slice(0,19).replace('T', ' ')}', '${id}', '0', '${id}', '0')`, (err, results) => {
if (err) return callback(err);
return callback(null, results.insertId);
});
}
function start (filepath, callback){
SetToImgDB(filepath, function (err, result) {
if (err) return callback(err)
return callback(null, result)
});
}
module.exports = {
start,
}
我试着使用$. AJAX ,但是这个方法根本不起作用。
1条答案
按热度按时间umuewwlo1#
右括号放错了位置:
应改为