javascript - 将数据发送到 MySQL 数据库的 React/Node 错误
问题描述
我的 Node/React 应用程序有一个复杂的问题。我有一个购物车,结帐时的最后一个元素是将订单详细信息添加到我的 MySQL 数据库,但是我的函数从控制器返回错误。我正在发布相关代码,完整的代码对于帖子来说太广泛了。
这是节点路线:
module.exports = function(app) {
var controller = require('../controllers/controller');
// controller Routes
app.route('/products')
.get(controller.list_all_products)
.post(controller.create_a_product);
app.route('/products/:product_type')
.get(controller.products_by_type);
app.route('/product/:productId')
.get(controller.read_a_product)
.put(controller.update_a_product)
.delete(controller.delete_a_product);
};
这是控制器的相关部分:
exports.create_a_product = function(req, res) {
var new_product = new Product(req.body);
//handles null error
if(!new_product.product || !new_product.status){
res.status(400).send({ error:true, message: 'Please provide product/status' });
} else {
Product.createProduct(new_product, function(err, product) {
if (err)
res.send(err);
res.json(product);
});
}
};
模型的相关部分:
var Product = function(product){
this.product = product.product;
this.status = Product.status;
this.created_at = new Date();
};
Product.createProduct = function (newProduct, result) {
sql.query("INSERT INTO orders set ?", newProduct, function (err, res) {
if(err) {
console.log("error: ", err);
result(err, null);
}
else{
console.log(res.insertId);
result(null, res.insertId);
}
});
};
然后 React 端使用这个 api 调用:
import $ from 'jquery'
export const addOrder = order => {
const urlString = "http://localhost:9000/products"
return $.ajax({
url: urlString,
method: "POST",
data: order,
success: () => {
console.log('order logged')
},
error: (status, err) => {
console.log(status)
}
})
}
最后我用这个 var 进行调用:
var r = await addOrder(this.state.order).then(res => res.json())
订单详情是一个简单的对象:
this.state = {
order: {
oid: '',
order_date: '',
products: '',
first_name: '',
last_name: '',
email: '',
address: '',
city: '',
province: '',
zip: '',
country: ''
}
}
执行时,我从控制器收到错误“请提供产品/状态”。
我知道这是一个艰难的过程,非常感谢任何帮助。
解决方案
在我看来,您将订单对象发送到可能包含多个产品的产品服务。您应该从订单对象 (req.body) 中提取产品并将它们发送到循环中的 createProduct 方法。
推荐阅读
- powerbi - DAX 测量以计算具有特定背景单元格颜色的行
- javascript - 尝试在反应示例应用程序中列出信封时出现 404 错误
- javascript - 如何使用 fetch() javascript 方法将数据发布到 .NET Core Web API
- ios - 使用 Swift 包管理器时单元测试中的“缺少所需的模块‘XYZ’”
- c# - POST 操作返回“未找到”错误
- php - 如何使用 Mysql If 函数来评估日期时间列?
- powershell - 尝试 Catch 不适用于 Get-CsUser 命令
- mysql - 如何在 SELECT 中将语句从一个表替换到另一个表?
- python - 如何修复此方法以创建仅具有唯一值的元组,其中数据通过 for 循环从分组的 2D 数据帧进入?
- c# - 每次我旋转图像时,我的系统内存都会不断增加