2017-06-30 14 views
1

私はこれを理解できません。燃料がなくなる。ガイダンスが必要です。HTML入力を渡す

htmlページのフォームに置かれたアイテムの数に更新するだけです。これは最初は簡単な作業だったようですが、数時間後には何時間もわかりません。私はボディパーサを考えていましたが、それを実装する方法はわかりません。

Iveは私のポストルートでそれを一度解析してIDとボディを取得しようとしましたが、Qtyを正しく置き換えることはできません。私はまた、ボディパーサのフォームデータを私の更新機能に送る方法があるかどうかを見出そうとしましたが、それには不運です。

誰かが「ああ、これは簡単にはできないの?しかし私は本当にこれを達成するのを助けるためにもう見えるべきか分かりません。私は笑完全に忘れて排出しています申し訳ありません:ここで

は私の端末であり、ここで

Bag { 
    items: { '5952b830d9b287b339b92dc3': { item: [Object], qty: 'How do i link this to req', price: 350 } }, 
    totalQty: 1, 
    totalPrice: 350, 
    add: [Function], 
    update: [Function], 
    reduceByOne: [Function], 
    removeItem: [Function], 
    generateArray: [Function] } 
POST /updatebag/5952b830d9b287b339b92dc3 302 285.498 ms - 96 
GET /bag/ 304 179.207 ms - - 

は、ここに私の更新カート方式

this.update = function(req, id) { 
     var storedItem = this.items[id]; 


     storedItem.qty = 'How do i link this to req'; 

    }; 

は私のポストルートは

router.post('/updatebag/:id', function(req, res, next) { 
    var productId = req.params.id; 
    var bag = new Bag(req.session.bag ? req.session.bag : {items: {}}); 

    Product.findById(productId, function(err, product) { 
     if (err) { 
      return res.redirect('/'); 
     } 
     bag.update(product, product.id) 
     req.session.bag = bag; 
     console.log(req.session.bag); 
     res.redirect('back'); 
    }); 
}); 

EDITです私はテキストで見ることができる製品の数量を変更しようとしています "これをreqにリンクするにはどうすればいいですか"私のターミナルに夢中になった。

答えて

0

この問題を解決しました。ちょっと面倒でしたが、問題がある場合は、このようなことを試すことができます。何か批判がある場合は、あなたが持っているものすべてで私を打つことを躊躇しないでください。

私の新しいターミナルが

Bag { 
    items: { '5952b830d9b287b339b92dc3': { item: [Object], price: 350, qty: '29' } }, 
    totalQty: 1, 
    totalPrice: 350, 
    add: [Function], 
    update: [Function], 
    reduceByOne: [Function], 
    removeItem: [Function], 
    generateArray: [Function] } 
POST /updatebag/5952b830d9b287b339b92dc3 302 163.569 ms - 96 
GET /bag/ 200 176.010 ms - 7497 

新しいアップデートカートメソッド

this.update = function(req, id) { 
     var storedItem = this.items[id]; 
     storedItem.qty = updateqty.qty; 

    }; 

新しいポストルート

router.post('/updatebag/:id', function(req, res, next) { 
    var productId = req.params.id; 
    var bag = new Bag(req.session.bag ? req.session.bag : {items: {}}); 

    Product.findById(productId, function(err, product) { 
     if (err) { 
      return res.redirect('/'); 
     } 
     updateqty.qty = req.body.qty; 
     bag.update(product, product.id); 

     req.session.bag = bag; 
     console.log(req.session.bag); 
     res.redirect('back'); 
    }); 
}); 

新しいスキーマ私は私の更新数量のために追加

var mongoose = require('mongoose'); 
var mongoosastic = require("mongoosastic"); 
var Schema = mongoose.Schema; 

var updateqty = new Schema({ 
    qty: { type: String, unique: true, lowercase: true}, 
}); 


module.exports = mongoose.model('updateqty', updateqty);