发布/获取/更新/服务器API

时间:2018-10-28 16:27:35

标签: json post fetch

我的提取和发布工作正常,我要整理的唯一一件事是如何添加一个赞按钮。我已经动态添加了一个img,当用户输入评论时它会出现。我正在尝试使用addEventListener推送该img时进行注册,然后将json对象中的“点赞”更新为服务器。如果我查看“邮递员”,则可以看到字段(名称,评论,ID,顶,时间戳)。由于我已经对此发表评论了...

let pushSubmit = document.getElementById('comment_submit');

    pushSubmit.addEventListener('click', function(e){                      
    e.preventDefault();  
    let uName = document.getElementById('user_name');                  
    let uComment = document.getElementById('user_comment');            

    let userData = {                                                 
        name: uName.value,
        comment: uComment.value,
    };

    commentPutter(userData);
    uName.value = ' ';                                             
    uComment.value = ' ';                                         
});

和POST到服务器...

function commentPutter(userData){
        const init = {
        body: JSON.stringify(userData),
        method: 'POST',
        headers: {
          'content-type': 'application/json'
        }
      };
      let postRequest = fetch("https://some.api.with-key=something", init);
      postRequest.then((response) => {
        console.log(response.status);
        return response.json();
      })
      .then((justPosted) => {                                       // post response json
        console.log(justPosted);
        lastPostedId = justPosted.id;
        return fetch("https://some.api.with-key=something");
      })
      .then((response) => {
        // comment list response
        return response.json();
      })
      .then((commentsList) => {
        // comment list response json
        console.log(commentsList);
        const match = commentsList.find((item) => {
          return item.id === lastPostedId;
        });
        console.log(match);
      });
}

我是否只需要为addEventListener编写全新的函数,例如like按钮(img),还是可以使用现有功能?只是稍微修改一下?由于它还会更新服务器上的现有注释。我不能简单地说函数中的“喜欢” +1(附加了事件监听器)

let pushSubmit = document.getElementById('comment_submit');

    pushSubmit.addEventListener('click', function(e){                      
    e.preventDefault();  
    let uName = document.getElementById('user_name');                  
    let uComment = document.getElementById('user_comment');            
    let uLikes = document.getElementById('heartImage')
    let userData = {                                                 
        name: uName.value,
        comment: uComment.value,
        likes: uLikes.value,
    };

我在这里面临的挑战是,为什么要重新发送名称和评论信息?我只需要发送注释“ ID”(唯一)和基于按钮单击的计数值。 (我的逻辑在这里吗?)?

0 个答案:

没有答案