Node.js REST API保存数据报错:req.status is not a function
解决Node.js REST API中"req.status is not a function"错误
嘿,我看到你在Node.js的REST API里保存数据时碰到了这个报错,这问题其实挺常见的,咱们来一步步把它解决掉:
错误根源
你代码里犯了个小疏忽:你调用了req.status(),但status()是响应对象res的专属方法,请求对象req根本没有这个方法。咱们是用res.status()来设置HTTP响应状态码的,可别搞混两个对象的职责啦。
关键修正点
看你这段出错的代码:
if(err){ req.status(500).send({message:err.message}) }
把它改成下面这样:
if(err){ return res.status(500).send({message:err.message}) }
这里加个return也很重要——不然错误处理完后,后面的res.send(result)还会继续执行,导致"Cannot set headers after they are sent to the client"的新错误。
修正后的完整代码
router.post('/savedata', function(req, res){ console.log(req.body); var data={ firstname:req.body.firstname, lastname:req.body.lastname, // 顺手帮你修正了这个小bug:原来你写的是req.body.firstname,应该对应lastname字段 password:req.body.password, email:req.body.email, created:req.body.created, employeeid:req.body.employeeid, joiningdate:req.body.joiningdate, phone:req.body.phone, designation:req.body.designation, }; console.log(data); var _newdata = new department(data); console.log(_newdata); _newdata.save(function(err,result){ console.log(result); if(err){ return res.status(500).send({message:err.message}) } console.log(result); res.send(result) }); });
内容的提问来源于stack exchange,提问作者ravi rana
相关产品推荐
相关产品推荐

