2017-07-18 79 views
0


我正在開發產品上載頁面
我有一個節,它將存儲數組。
如何使用角度js和節點js將數組POST到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。
我有2個問題:

  1. 最初頁面將加載與單一領域,而是如何產生更多SKU場的號碼,如果用戶想爲同樣的產品添加多個值嗎?
  2. 如何將該數據發佈到Mongodb?
    請幫忙。

回答

0

(1)您將要使用$ http服務。您可以使用。員額()方法,該方法需要兩個參數,網址,數據,例如:

$http.post(URL, data); 

一定要注入服務到您的angularJS控制器/指令。

(2)現在,我沒有與任何的MongoDB經驗,但我會假設你做這樣的事情:

在你server.js文件,註冊快遞像

的API路徑,東西
var express = require('express'); 
var app = express(); 

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

app.listen(PortNumber) 

立即下載NPM包的MongoDB: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); 
     }); 
    } 

希望這有助於。

+0

很抱歉我忘了提,那我與REST類型的API.I工作已經有了網絡服務來發布數據,但我的問題是如何動態生成使用asngular JS HTML頁面上的字段,即得敵人「SKU」節? –

+0

不用擔心!希望我以某種方式幫助第二點。 – Max

+0

:yup謝謝,但是你知道我如何使用角度js動態生成「SKU」字段 –