我正在使用此api,并且由于任何原因,都会向我返回错误消息:
SyntaxError:JSON输入意外结束。
我正在执行MySQL连接,在这里一切正常,但是,当我尝试执行POST请求时,出现了问题。 我的MySQL数据库正在100%正常工作。
var express = require('express');
var router = express.Router();
var mysql = require('mysql');
router.post("/postPersona", MiddlewareMultipart, (req, res, next) => {
//console.log("." + req.files.Src.path.split("public")[1]);
//console.log(req.body);
var query = 'CALL addPersonas(?,?,?,?,?,?)';
var imgPath = "." + req.files.Src.path.split("public")[1];
var datos =
[
req.body.Nombre,
req.body.Telefono,
req.body.Curp,
req.body.ECivil,
Number(req.body.Edad),
imgPath
]
conn.query(query, datos, (err, results, fields) => {
if (err) {
console.log("Error" + err);
res.send(JSON.stringify("Error: " + err));
}
else {
console.log(results);
res.send(JSON.stringify(results[0]));
}
});
});
var Agregar = () => {
var formData = new FormData();
formData.append("Nombre", NomSrc.value);
formData.append("Telefono", TelSrc.value);
formData.append("Curp", CurpSrc.value);
formData.append("ECivil", EstCSrc);
formData.append("Edad", EdadSrc.value);
formData.append("Src", ImgSrc.files[0]);
var url = "http://localhost:3000/apiMYSQL/postPersona";
fetch(url, {
method: "POST",
body: formData
})
.then((response) => {
return response.json();
})
.then((data) => {
console.log(data);
alert(data);
})
.catch((error) => {
console.log("Error: " + error);
})
}
OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0
}
答案 0 :(得分:1)
“错误:” + err不是json对象。无效。
if (err) {
console.log("Error" + err);
//res.send(JSON.stringify("Error: " + err));
res.send(JSON.stringify( {Error: err }));
}
甚至更简单;
if (err) {
console.log("Error" + err);
//res.send(JSON.stringify("Error: " + err));
//res.send(JSON.stringify( {Error: err }));
res.json({Error: err });
}
答案 1 :(得分:0)
尝试使用json
而不是send
,因此请修改以下内容:
res.send(JSON.stringify(results[0]));
收件人:
res.send({ results });
希望这会有所帮助!