如何创建一个简单的获取表单,该表单将根据搜索字段的值(MONGODB 和 Node.js)创建动态路由
How create a simple get form that will create a dynamic route, depending on the value of the search field (MONGODB and Node.js)
我希望在数据库中搜索用户在获取表单中输入的值。
后端非常简单,我知道如何搜索抛出数据库并呈现结果..
app.get('search/:id', function(req, res) {
var id = req.param("id");
mongoose.model('Something').find({
// the field that i want find. For example:
_id: id // This will search for the id field in the database, them will return a object if finds a match.
}, function(error, object){
if (error) {
res.send(error);
}
else {
res.send(object);
}
}
);
});
这个脚本可以工作。
现在我遇到了 HTML 的问题。
我需要一个将用户发送到 /search/SOMETHING 用户想要搜索的获取表单,但我不知道如何动态地更改 url..
非常欢迎任何帮助。
如果您不知道如何在 HTML 中实现所需的行为,您仍然可以在后端完成 - 通过设置重定向。提交表单后的传入请求类似于 ?inputName=user search string
。
然后您可以获取查询的值并执行到您的路由的内部重定向
app.get('search', function(req, res) {
res.redirect('/search/' + req.query["inputName"]);
});
要让表单以类似快速的方式传递 GET 参数,您需要挂钩表单的 onSubmit,然后触发 XHR/ajax 请求而不是表单-post.
或者您可以通过 req.query.inputFieldName
读取查询字符串,如果您认为 url 看起来像 /search/?inputFieldName=AwesomeSearchString
我会采用 XHR/ajax 方式,因为它还可以防止页面重新加载,从而改善用户体验。
我希望在数据库中搜索用户在获取表单中输入的值。
后端非常简单,我知道如何搜索抛出数据库并呈现结果..
app.get('search/:id', function(req, res) {
var id = req.param("id");
mongoose.model('Something').find({
// the field that i want find. For example:
_id: id // This will search for the id field in the database, them will return a object if finds a match.
}, function(error, object){
if (error) {
res.send(error);
}
else {
res.send(object);
}
}
);
});
这个脚本可以工作。
现在我遇到了 HTML 的问题。
我需要一个将用户发送到 /search/SOMETHING 用户想要搜索的获取表单,但我不知道如何动态地更改 url..
非常欢迎任何帮助。
如果您不知道如何在 HTML 中实现所需的行为,您仍然可以在后端完成 - 通过设置重定向。提交表单后的传入请求类似于 ?inputName=user search string
。
然后您可以获取查询的值并执行到您的路由的内部重定向
app.get('search', function(req, res) {
res.redirect('/search/' + req.query["inputName"]);
});
要让表单以类似快速的方式传递 GET 参数,您需要挂钩表单的 onSubmit,然后触发 XHR/ajax 请求而不是表单-post.
或者您可以通过 req.query.inputFieldName
读取查询字符串,如果您认为 url 看起来像 /search/?inputFieldName=AwesomeSearchString
我会采用 XHR/ajax 方式,因为它还可以防止页面重新加载,从而改善用户体验。