当我提交表单时,node.js 挂起,但它保存到 mongodb。请对我做错了什么提出建议,对 Node 来说还是个新手。
index.js
router.post('/add-to-cart/:id', cartController.checkCart, cartController.createCart);
购物车 Controller
exports.checkCart = async (req, res, next) => {
const cart = await Cart.findOne({"owner": req.params.id});
if (!cart){
return next();
}
else{
res.json(req.body);
};
};
exports.createCart = async (req, res) => {
const createCart = new Cart({
owner: req.params.id,
status: 'open',
products: {
_id: req.body._id,
quantity: req.body.quantity,
price: req.body.price
}
});
const newCart = await createCart.save();
};
JQuery
$(".submit").click(function(event){
$(".form").submit(req.body);
$(this).attr("class", "submit btn btn-success");
event.preventDefault();
});
最佳答案
exports.createCart
需要声明它已完成。您应该添加 next
函数参数并在末尾使用 next()
调用它,或者使用 res.json()
、res.end()
、res.send()
等返回某些内容。
如果没有这两个选项,它将无限期地挂起。您在第一个函数中完成的方式是正确的;只需将同样的事情应用于第二个即可。
关于jquery - 使用 jquery 提交表单时 Node.js 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47857671/