我在我網站的客戶頁面上創建了一個搜索欄,管理員在搜索欄中輸入的任何字串都將作為獲取請求發送,并根據輸入我試圖在 MySQL db 中查找包含以下內容的所有資料全名欄位內的輸入字串。
我的網站構建為 MVC 模型,使用 Express 顯示資料和 Node.js
這是我的表格
<form class="d-flex" method="GET">
<input class="form-control me-2 py-1" type="text" id="search" name="search" placeholder="Search customer name" aria-label="Search" value="<%= %>" />
<button class="btn btn-sm btn-secondary" type="submit">Search</button>
</form>
這是 web.js 檔案中的路由
router.get('/customer?search',authentication.handleAuthentication, authadmin.authAdmin,adminController.searchCustomer);
adminServices.js 中的 getCustomerByName()
let getCustomerByName = (name) => {
return new Promise(async (resolve, reject) => {
try {
let user = await db.User.find({ fullname: name });
if (user) {
console.log(user);
resolve(user);
} else {
resolve(user);
}
} catch (e) {
reject(e);
}
});
};
adminController.js 中的 searchCustomer()
let searchCustomer = async (req,res,next) =>{
let name = req.params.search;
let customer = await adminServices.getCustomerByName(name);
return res.render('admin/customer.ejs', {
customer: customer,
});
}
我曾嘗試過 req.body.search / req.params.search / req.query 但似乎無法獲得輸入。網址是這樣的:http://localhost:8080/customer?search=mai。我找不到問題出在哪里,因為控制臺中沒有顯示任何內容。有什么方法可以嘗試嗎?
uj5u.com熱心網友回復:
您需要為action表單元素添加標簽。將路由名稱更改為 justcustomer并req.query.search在控制器中使用。
router.get('/customer', authentication.handleAuthentication, authadmin.authAdmin, adminController.searchCustomer);
let searchCustomer = async(req, res, next) => {
let name = req.query.search; // change params to query
let customer = await adminServices.getCustomerByName(name);
return res.render('admin/customer.ejs', {
customer: customer,
});
}
<form class="d-flex" action="/customer" method="GET">
<input class="form-control me-2 py-1" type="text" id="search" name="search" placeholder="Search customer name" aria-label="Search" value="<%= %>" />
<button class="btn btn-sm btn-secondary" type="submit">Search</button>
</form>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/363256.html
標籤:javascript 节点.js 表达 模型视图控制器
上一篇:設定標題內容型別多部分/表單資料時,請求被CORS-policyNo'Access-Control-Allow-Origin'阻止
