我有用于 SQL 查询的组件,当我想向 API 服务器后端发送任何查询时崩溃,因为 MySQL 看到像我的请求一样的空字符串。我的后端运行良好,因为当我从 postman.exe 测试它时,一切都很好。
我的提交组件位于 localhost:3000 上,api 位于 localhost:5000 上。
这是我的发送方法:
submitData= () =>{
const { queryFromEditor } = this.props;
let queryFromEditorString = queryFromEditor.join(' ');
console.log(queryFromEditorString);
let xhr = new XMLHttpRequest();
xhr.open("POST", 'http://localhost:5000/api/query', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({
"value": queryFromEditorString,
}));
}
这是我的发帖方法
app.post('/api/query', (req, res) => {
console.log(`\n Query input : ${JSON.stringify(req.body)}`);
let queryInput = JSON.stringify(Object.values(req.body));
queryInput = queryInput.slice(1,-1);// Opravit, aby to nevypadalo tak blbě
queryInput = queryInput.slice(1,-1);
let queryOutput;
db.query(queryInput, (err, result) =>{
if(err) throw err+' : '+queryInput;
queryOutput = result;
console.log("\nQuery output "+ JSON.stringify(queryOutput));
res.json(queryOutput);
});
});
问题出在服务器上。
简单修复:添加“app.use(express.json());”