【发布时间】:2019-09-21 04:29:41
【问题描述】:
我想通过获取 api 从数据库中获取最后一个 id,
问题出在表 MaterialUnit materialID 显示为 0
console.log 在服务器上运行良好!
这里是 server.js
app.get('/AddProducts', function (req, res) {
const { materialName, description, categoryID, manufactureID, currencyID} = req.query;
const INSERT_MATERIAL = `INSERT INTO material (materialName, description, categoryID, manufactureID, currencyID) VALUES
('${materialName}','${description}','${categoryID}','${manufactureID}','${currencyID}')`;
connection.query(INSERT_MATERIAL, (error, result) => {
if(error) {
return res.send(error)
}
else {
console.log(result.insertId);
return res.json({id: result.insertId})
}
});
});
app.get('/AddMaterialUnits', function (req, res) {
const { materialID, unitID, def, rate, price, vat, bar} = req.query;
const INSERT_MATERIAL = `INSERT INTO materialunit (materialID, unitID, barcodeNo, salePrice, vatValue, isdefault, rate) VALUES
('${materialID}','${unitID}','${bar}','${price}','${vat}','${def}' ,'${rate}')`;
connection.query(INSERT_MATERIAL, (error, result) => {
if(error) {
return res.send(error)
}
else {
return res.send(result)
}
});
});
然后在组件中:
AddProduct() {
let url1 = `http://localhost:3000/AddProducts?materialName=${this.state.name}&description=${this.state.description}&categoryID=${this.state.catID}&manufactureID=${this.state.manID}¤cyID=${this.state.curID}`;
fetch(url1)
.catch(error => console.error(error))
.then(alert("Added successfully"))
.then((result) => this.setState({materialID: result.id}))
.then(alert(this.state.materialID));
this.state.materialUnits.map(obj =>
fetch(`http://localhost:3000/AddMaterialUnits?materialID=${this.state.materialID}&unitID=${obj.unit.id}&def=${obj.default.value}&rate=${obj.rate}&price=${obj.price}&vat=${obj.vat}&bar=${obj.barcodeNo}`)
.catch(error => console.error(error))
.then(alert("Added successfully"))
)
}
【问题讨论】:
-
您能否详细说明发生了什么问题,因为根据this duplicate,您做得正确。
-
确定可以,您使用的是什么数据库?
-
不确定!我正在使用 mysql 和 expressjs
-
取到后materialID的值为0
-
您的插入查询是什么?可以发一下吗?
标签: mysql node.js reactjs express jsx