Vue在mongoose数据库中更新数据并使用axios调用

时间:2017-08-24 20:16:48

标签: javascript node.js mongodb vue.js axios

我有一个问题,我使用了一个get和post函数来检索并保存我的数据库中的一些url,但现在我想更新一个变量计数,它应该是每个视频得到的投票,然后我应该能够禁用用户点击投票的按钮。所以我有一些麻烦来制作更新功能,或者我应该使用另一个帖子?但如果是这样,我可能会在我的数据库中创建另一个元素吗?

所以这里有我的视频,现在我使用css设置视频的ID不可见,测试它并尝试找到具有该特定ID的视频并进行更新

                <p class="invisible" id="idVideo"> {{item._id}} </p>

                <iframe class="partecipant"  v-bind:src="item.video.url"> </iframe>

                <p id="voti" > {{item.voti.count}}  </p>

                <input type="button" id="buttonVoti" v-on:click="addVoto">

所以在这里,当用户点击id = buttonVoti的按钮时,点击调用addVoto函数

methods: {
...
//ALL THE OTHERS METHODS
...
...
...
 //AND THEN THE ADDVOTO FUNCTION
 addVoto : function () {
                            var self = this;
                            //self.videos[1].voti.count++
                            //console.log(self.videos._id);
                            var i = document.getElementById("idVideo");
                            var idVid =i.innerHTML;
                            console.log(idVid);

所以在这里我可以改变变量计数,使用self .... count ++但我必须存储然后再次检索相同的视频并更新新的计数。

这里有我的模型,所以访问计数的逻辑应该是这个

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

 var videoSchema  = new Schema({

     video : {
         id : String,
         url : String,
         idchallenge :  String
     },

     voti : {
         count : {}
     }
     });


 module.exports = mongoose.model('Video', videoSchema);

是的,所以我有一个名为加载视频的方法,当用户点击一个名为loadVideo的按钮时会激活该方法

                  loadVideo : function (){


                        var linkYoutube = this.text;
                        console.log(linkYoutube);

                        //POST
                        axios.post('/video',{

                            method: 'post',
                            video: {
                                id: '1',
                                url: linkYoutube
                            },
                            voti: {
                                count: 0
                            }

                        });

这是我的get函数,

                        getVideo: function () {
                        var self = this;

                        // Make a request for a user with a given ID
                        axios.get('/video')
                            .then(function (response) {

                              self.videos = response.data;
                                console.log(self.videos);

1 个答案:

答案 0 :(得分:0)

当您None向您的视频路线请求时,在您的路线逻辑中,您应该可以使用Mongoose count。以下是该路线的样子:

GET

以下是关于Stack Overflow的猫鼬计数的问题。