2017-11-11 313 views
0

我在我的網站上有一個鏈接。點擊後,它會調用一個執行貓鼬查詢的函數。 我希望將該查詢的結果發送到變量中的同一頁面,而無需重新加載頁面。我怎麼做?現在它只是用新的查詢結果數據再次渲染頁面。從貓鼬查詢發送變量到頁面,無需重新加載點擊

// List comments for specified chapter id. 
commentController.list = function (req, res) { 
    var chapterId = req.params.chapterId; 
    var query = { chapterId: chapterId }; 
    Chapter.find({ _id: chapterId }).then(function (chapter) { 
    var chapter = chapter; 
    Comment.find(query).then(function (data) { 
    console.log(chapter); 


    Chapter.find().then(function(chapters){ 
     return res.render({'chapterlinks', commentList: data, user: req.user, chapterq: chapter, chapters:chapters }); 

    }) 

}); 

}) };

回答

1

你只需要從您的瀏覽器的請求通過AJAX

https://www.w3schools.com/xml/ajax_intro.asp

這將是您的客戶端(瀏覽器)的代碼,而不是爲你的服務器的代碼(的NodeJS) 。

UPDATE:

下面是一個簡單的例子,它使用jQuery的使事情變得更容易:

(1)創建執行和處理AJAX請求的功能

function getChapterLinks(chapterId) { 
    $.ajax({ 
     url: "/chapterLinks/"+chapterId, 
    }).done(function(data) { 
     //here you should do something with data 
     console.log(data); 
    }); 
} 

(2)將該函數綁定到DOM元素的單擊事件

$("a#chapterLinks1").click(function() { 
    getChapterLinks(1); 
}); 

(3)確保DOM元素是在某處你html的

<a id="chapterLinks1">Get ChapterLinks 1</a> 

現在點擊該a#chapterLinks1元素時,它將使用AJAX獲取的/chaptersLink/1響應從你的服務器上重新加載頁面。


引用:

http://api.jquery.com/jquery.ajax/

http://api.jquery.com/jquery.click/

+0

這是一個鏈接唯一的答案。如有必要,請使用您鏈接的內容形成一個適當的完整答案。鏈接死了,你的答案將是無用的。 https://stackoverflow.com/help/how-to-answer – Rob

+0

雖然此鏈接可能會回答問題,但最好在此處包含答案的重要部分並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/17914517) –

+0

也許我應該只是簡單地回答「使用ajax」,然後複製粘貼它的內容並忽略鏈接。 – bitstrider

相關問題