Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Node.js 在mongodb数据库上发布时出现奇怪的输出_Node.js_Mongodb - Fatal编程技术网

Node.js 在mongodb数据库上发布时出现奇怪的输出

Node.js 在mongodb数据库上发布时出现奇怪的输出,node.js,mongodb,Node.js,Mongodb,我的数据模式有点问题。我正在使用mongoose使用mongodb和node.js构建一个应用程序以下是我的模式: var Schema = mongoose.Schema; var misc = new Schema ({ publictransp: {type: Number}, culture: {type: Number}, traffic: {type: Number}, nature: {type: Number}, supermarket: {type: Nu

我的数据模式有点问题。我正在使用mongoose使用mongodb和node.js构建一个应用程序以下是我的模式:

var Schema = mongoose.Schema;

var misc = new Schema ({
  publictransp: {type: Number},
  culture: {type: Number},
  traffic: {type: Number},
  nature: {type: Number},
  supermarket: {type: Number},
  school: {type: Number},
  sport: {type: Number},
  nightlife: {type: Number},
  mean: {type: Number}
});

var rue = new Schema ({
  nomrue: {type: String},
});

var Quartiers = new Schema ({
  nomquartier: {type: String},
  listerue: [rue],
  critere: [misc]
})

var location = new Schema ({
  nomville: {type: String, required: true},
  description: {type: String, required: true},
  quartiers: [Quartiers],
  modified: {type: Date, default: Date.now}
});


var ObjModel = mongoose.model('Obj',location);
以下是应用程序代码:

//LIST PRODUCTS
app.get('/api/products', function (req, res){
  return ObjModel.find(function (err, products){
    if (!err) {
      return res.send(products);
    } else {
      return console.log(err);
    }
  });
});

//CREATE PRODUCTS
app.post('/api/products', function(req,res){
  var product;
  console.log("POST: ");
  console.log(req.body);
  product = new ObjModel({
    nomville: req.body.nomville,
    description: req.body.description,
    quartiers: [Quartiers],
    critere: [misc],
    rue: [rue]
  });
  product.save(function(err){
    if (!err) {
      return console.log("created");
    } else {
      return console.log(err);
    }
  });
  return res.send(product);
});

//READ SINGLE ELEMENT
app.get('/api/products/:id', function(req,res){
  return ObjModel.findById(req.params.id, function(err, product) {
    if (!err) {
      return res.send(product);
    } else {
      console.log(err);
    }
    return res.send(product);
  });
});

//UPDATE METHOD

app.put('/api/products/:id', function(req,res){
  return ObjModel.findById(req.params.id, function(err, product){
    product.nomville = req.body.nomville;
    product.description = req.body.description;
    product.quartiers= req.body.quartiers;
    return product.save(function(err){
      if (!err) {
        console.log("updated");
      } else {
        console.log(err);
      }
      return res.send(product);
    });
  });
});

//DELETE METHOD

app.delete('/api/products/:id', function(req,res){
  return ObjModel.findById(req.params.id, function(err, product){
    return product.remove(function(err){
      if (!err) {
        console.log("removed");
        return res.send(' ');
      } else {
        console.log(err);
      }
    });
  });
});
我正在向数据库发送以下Jquery查询:

    jQuery.post("/api/products", {
  "nomville": "Strasbourg",
  "description": "Ville de Strasbourg",
  "quartier": [
    {
      "nomquartier": "Centre",
      "listerue": [
          {
            "nomrue": "22 Novembre"
          },
          {
            "nomrue": "Abattoir"
          },
          {
            "nomrue": "Fonderie"
          },
          {
            "nomrue": "Francs Bourgeois"
          }
      ]
    },
    {
      "nomquartier": "Cité de l'Ill",
      "listerue": [
          {
            "nomrue": "Anguille (chemin de l)"
          },
          {
            "nomrue": "Civelles (promenade des)"
          },
          {
            "nomrue": "Hechner (rue)"
          },
          {
            "nomrue": "Phario (pont)"
          }
      ]
    },
    {
      "nomquartier": "Krutenau",
      "listerue": [
          {
            "nomrue": "Abreuvoir (rue de l)"
          },
          {
            "nomrue": "Bain Finkwiller (rue du)"
          },
          {
            "nomrue": "Fustel de Coulanges (quai)"
          },
          {
           "nomrue": "Hôpital (place de l)"
          }
      ]
    }
  ],
  "critere":[
    {
      "publictransp": 2,
      "culture": 8,
      "traffic": 5,
      "nature": 7,
      "supermarket": 3,
      "school": 5,
      "sport": 6,
      "nightlife": 4,
      "mean": 5
    },
  ]
}, function(data, textStatus, jqXHR) {
    console.log("Post resposne:"); console.dir(data); console.log(textStatus);         console.dir(jqXHR);
});
但是我有一个不完整的输出,即使终端输出是正确的,数据库也会显示以下输出:EDIT这是我用你的代码Samy得到的

[
  {
    "nomville": "Strasbourg",
    "description": "Ville de Strasbourg",
    "_id": "526ee45a8d29774913000004",
    "__v": 0,
    "modified": "2013-10-28T22:25:30.970Z",
    "quartiers": []
  }
]

您可以在这里找到我的原始帖子,但有另一个问题:它有一些额外的代码

请为您的api视图(查看/api/产品)提供代码。 编辑:在中找到“确定”

保存完成后,首先放置res.send,如下所示:

app.post('/api/products', function(req, res, next){
  var product;
  console.log("POST: ");
  console.log(req.body);
  product = new ObjModel({
    nomville: req.body.nomville,
    description: req.body.description,
    quartier: req.body.quartier,
    critere: req.body.critere,
    rue: req.body.rue,
  });
  product.save(function(err){
    if (err) return next(err);
    res.send(product);
  });
});
这是什么(因为它无法工作):

我发现了问题:

例如,嵌入式架构必须具有以下形式:

var misc = new Schema ({
   publictransp: Number, 
   culture: Number,
   nature: Number,
   [ etc...]
})

我现在没有任何视图,我只是渲染结果,我在数据库上有一个奇怪的输出,我的意思是:处理这个http请求“/api/products”的express视图在哪里?这里是这样的代码:是的,但问题本身是查询的结果,我无法找到为什么数据库中的所有数据都不可用
var misc = new Schema ({
   publictransp: Number, 
   culture: Number,
   nature: Number,
   [ etc...]
})