Javascript 如何在node.js中搜索?
我正在使用Mongoostic,它工作正常,但我面临的问题是,如何从Javascript 如何在node.js中搜索?,javascript,node.js,Javascript,Node.js,我正在使用Mongoostic,它工作正常,但我面临的问题是,如何从.post方法获取对象并将其传递给.get方法 例如: router.post('/search', function(req, res, next) { Product.search({ something: 'Something'}, function(err, result) { if (err) return next(err); res.redirect('/search') // <
.post
方法获取对象并将其传递给.get
方法
例如:
router.post('/search', function(req, res, next) {
Product.search({ something: 'Something'}, function(err, result) {
if (err) return next(err);
res.redirect('/search') // <--- How do i pass the result object?
});
});
router.get('/search', function(req, res, next) {
res.render('search');
});
router.post('/search',函数(req,res,next){
搜索({something:'something'},函数(err,result){
if(err)返回next(err);
res.redirect('/search')/您不需要使用GET将用户重定向到另一个路由来发送响应
您可以在.post
中提供请求,这是完全可以接受的
POST
和GET
是两种形式的HTTP请求。无论web服务器收到何种类型的请求,响应都可能是任何内容。它可能是重定向,也可能是实际的网页,或者其他类型的内容,例如错误
我认为您不需要这样做,但为了完整起见,对于搜索页面,可能会出现另一种情况。GET请求可以在浏览器中添加书签,因为重新呈现页面所需的只是URL。但是POST请求不能,因为它还需要请求正文中的POST参数。如果您想让用户发出嘘声K使用结果标记页面或使用结果永久链接到同一页面,您也可以在GET请求中为请求提供服务。例如,在URL中添加一个额外参数,如?q=搜索词
这是一种通过GET请求发送参数的方式。/search
路由也将捕获/search?q=search term
URL。您可以使用req.query.q
访问该URL,其值将为“search term”
(查看了解更多信息)。因此,您可以修改表单以发送GET请求而不是POST(…
),也可以使用GET将用户重定向回搜索页面,并沿URL传递参数。最后在GET请求中提供所有搜索结果
但同样,这是更高级的东西,对于您需要做的事情,通常来说,无论请求是POST还是GET或其他什么,都可以为其提供服务。为什么您没有一个处理它的函数?(意味着GET函数和POST函数都会调用一个公共函数)为什么需要将其传递给get函数?这是后端代码还是前端代码,看起来像express?req.search=result;?然后在get('/search')中,您可以访问req.search。这是基本的中间件方法。将中间件想象为一系列过滤器,处理您的请求,添加、删除、修改数据。这就是您想要做的?将搜索结果添加到请求中?为什么要这样做?您可以在post
@SoluableNonagon i中提供请求t是后端,使用express。js@Ludo,所以我需要创建一个自定义中间件?嘿,阿米尔,谢谢你的详细解释,但是如果你展示一些示例,可以吗,因为目前我很困惑。我创建了一个github gist@JackMoscovi。代码实际上取决于你的整个项目,所以不要期望代码工作,它只是给你一个想法。如果这回答了你的问题,考虑投票并将其标记为未来访问者的答案: