我試圖構建一個簡單的應用程式,但我遇到了一個問題,我的應用程式只是保存在資料庫中的一些人的資料,目標只是在螢屏上顯示它們,但我們可以按名稱搜索這些人。我有一個 ejs 頁面和 javascript 檔案連接到他
js代碼:
document.querySelector(".search__box_input").addEventListener("click", async function(event) {
fetch("/", {
method: "get",
headers: new Headers({'search': searchButton.value})
})
})
節點代碼:
app.get("/", async(req, res) => {
if(!req.headers["search"] || req.headers["search"] === ''.trim()) {
return res.render("home", persons: await personSchema.find({}).limit(10)}) // personSchema is my mongoose schema
} else {
const foundDocuments = await personSchema.find({"name.first": req.headers["search"]})
console.log(foundDocuments); // i got my document correctly
if(!foundDocuments) return res.send("could'nt find the user")
return res.render("home", {
persons: foundDocuments // It doesn't render again
})
}
})
我想再次渲染 ejs .. 有人可以幫我嗎?
uj5u.com熱心網友回復:
Ajax 的重點是您使用 JavaScript 發出請求,然后將回應回傳給您的 JavaScript 進行處理。通常這將涉及進行DOM 更新。
您的 JavaScript 完全忽略了回應。
const response = await fetch(...);
const text = await response.text();
console.log(text);
如果你想再次渲染整個頁面,那么不要使用 Ajax。只需使用常規表單提交即可。
(并將search引數放在查詢字串而不是自定義標頭中)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/414721.html
標籤:
