如何使用Angular js& amp;将阵列发布到mongodb节点js

时间:2017-07-18 16:42:15

标签: angularjs node.js mongodb


我正在开发产品上传页面
我有一个部分,将存储数组。

模型

var productsSchema = new Schema({
    Id: {type: String, required: true},
    pName: {type: String, required: true},

    sku: [
        {
            size: {type: Number, required: true},
            price: {type: Number, required: true},
            color: {type: String, required: true},
            quantity: {type: String, required: true},
            inStock: {type: String, required: true},
            imagePaths: {type: Array, required: false}
        }
    ]


}); <br/>

正如您所见, sku 属于阵列类型 对于前端我使用的是Angular js 我有两个问题:

  1. 如果用户想要为同一产品添加多个值,那么最初页面将加载单个字段,但如何生成更多 sku 字段?
  2. 如何将这些数据发布到Mongodb?
    请帮忙。

1 个答案:

答案 0 :(得分:0)

(1)您将要使用$ http服务。您可以使用.post()方法,该方法包含2个参数,URL和数据,例如:

$http.post(URL, data);

务必将服务注入angularJS控制器/指令。

(2)现在我对MongoDB没有任何经验,但我假设你做了类似的事情:

在server.js文件中,使用express注册API路径,例如

var express = require('express');
var app = express();

app.post(URL, function(req, res) {
    // the data is here --> req.data
})

app.listen(PortNumber)

现在下载MongoDB的npm包:https://www.npmjs.com/package/mongodb

使用该文档,计算出在端口上连接mongoDB所需的内容,然后使用API​​中收到的数据写入数据库。简单地说,你必须使用:

var MongoClient = require('mongodb').MongoClient
  , assert = require('assert');

// Connection URL 
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the Server 
MongoClient.connect(url, function(err, db) {
  assert.equal(null, err);
  console.log("Connected correctly to server");

  db.close();
});

连接后,在app.post()

中发布
  app.get(URL, function(req, res) {
      var collection = db.collection('documents');
                          //data here 
      collection.insertMany(**req.data**, function(err, result) {
          console.log("Inserted document into collection");
          callback(result);
      });
  }

希望这有帮助。