Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 处理API调用中丢失的数据_Javascript_Node.js_Rest_Express_Mongoose - Fatal编程技术网

Javascript 处理API调用中丢失的数据

Javascript 处理API调用中丢失的数据,javascript,node.js,rest,express,mongoose,Javascript,Node.js,Rest,Express,Mongoose,我有一个路由处理程序,它需要将一些数据(car.name)传递给它,以服务于它的功能 carRouter.route('/create') .post(carController.create) function create(req, res, next) { const carInstance = new carModel({ activated: false, name: body.car.name, 如果没有body.car.name,express将崩溃 我

我有一个路由处理程序,它需要将一些数据(
car.name
)传递给它,以服务于它的功能

carRouter.route('/create')
  .post(carController.create)

function create(req, res, next) {
  const carInstance = new carModel({
    activated: false,
    name: body.car.name,
如果没有
body.car.name
,express将崩溃

我可以通过添加以下检查来处理此问题:

if (body.car.name) {
  function create(req, res, next) {
但由于有大量的模型属性,这很快就会变得很麻烦

我的
CarSchema
本身已经有了验证设置,因此我想将验证委托给mongoose,避免在请求中缺少数据时应用程序崩溃

我已经在github上查看了很多真实的例子,试图找到如何处理这个问题,结果好坏参半


处理这种基本情况的正确方法是什么?

TypeError
试图读取非对象的属性时抛出?也许这有助于:

name: body.car ? body.car.name : null
或者,如果您不关心
名称
是否为
未定义

name: body.car && body.car.name

试图读取非对象的属性时抛出
TypeError
?也许这有助于:

name: body.car ? body.car.name : null
或者,如果您不关心
名称
是否为
未定义

name: body.car && body.car.name

如果数据丢失,您希望API调用的结果是什么?@jfriend00我想返回40*如果数据丢失,您希望API调用的结果是什么?@jfriend00我想返回40*如果
body.car
存在,但是
body.car.name
不存在,那么查询不存在的属性是可以的,但不查询不存在的对象的属性
body.car.name
的计算结果仅为
undefined
。确定<代码>正文将始终存在?它与代码的其他部分相关。在节点中,特别是在Express中,有一个
req
对象传递给handler函数。它是http请求的
http
模块包装器,它有
req.body
字段,只要http请求有。您正在处理POST请求,因此在处理函数中,
req.body
肯定包含所有数据(您必须使用
body解析器
):p reposted:Ok。因此,我可以在创建模型之前放置body.car存在性检查,比如
if(body.car){const carInstance=new carModel({activated:false,name:body.car.name
?如果
body.car
存在但
body.car.name
不存在怎么办?查询不存在的属性可以是JS,但不查询不存在的对象的属性。
body.car.name
的计算结果只是
未定义
。确定。
body
将始终存在?它与代码的其他部分。在节点中,特别是在Express中,有一个
req
对象传递给处理程序函数。它是http请求周围的
http
模块的包装器,它有
req.body
字段,只要http请求有。您正在处理POST请求,所以在处理程序函数中
req.body
应该包含所有数据(必须使用
body parser
):p reposted:Ok。因此,我可以在创建模型之前进行body.car存在性检查,如
if(body.car){const carInstance=new carModel({activated:false,name:body.car.name