jquery - 使用 jquery 提交表单时 Node.js 挂起

标签 jquery node.js mongodb express

当我提交表单时,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/

相关文章:

javascript - 将 JSON 对象转换为 javascript 数组

node.js - Node.js 的按键因数字而崩溃

javascript - 如何对异步映射函数执行递归

javascript - 我应该在异步函数中抛出错误还是返回被拒绝的 promise ?

javascript - 将带有图像路径值的 Json 文档插入到 css 背景属性中

MongoDB: "Malformed geo query"多边形上有 $geoIntersect

javascript - Bootstrap 按钮在单击时不会突出显示

javascript - jquery/javascript 隐藏除单击的项目之外的所有子表单元素

javascript - 从脚本标签中查找特定数据属性并删除脚本标签

node.js - 每次刷新或访问页面时,Node js Express-Session 都会创建新的 session ID