【发布时间】:2018-01-31 23:28:07
【问题描述】:
步骤: 从 mongodb 中提取数据以填充搜索页面上的链接。能够单击链接将最终用户带到由 mongodb 自动填充的通用业务页面。使用来自 mongodb 的 JSON 数据呈现页面。
问题: res.render 卡在无限循环中(也不会抛出错误)
我尝试添加一个 if 语句,这样 res.render 就不会再次渲染,但仍然卡在一个循环中。
routes/business.js
router.get('/:business', (req, res) => {
console.log(req.params.business);
Business.getBusinessByUrl(req.params.business, (err, business) => {
if (err) throw err;
res.render('business', {
found: true,
business_name: business.business_name,
business_profile_image: business.business_profile_image,
business_url: business.business_url
});
});
});
module.exports = router;
models/business.js
module.exports.getBusinessByUrl = function (businessUrl, callback) {
const query = { business_url: businessUrl };
Business.find(query, callback);
};
这是它在浏览器中的样子: Imgur
如果您需要任何其他代码,请告诉我。
【问题讨论】:
-
嘿@马森柯蒂斯。介意告诉我们
getBusinessByUrlfunc 下面发生了什么吗? -
是的,一秒钟没问题。
-
如果单个请求的查找失败,您真的想停止服务器吗?这就是
throw err会做的事情,可能需要重新考虑...... -
为什么你有
if (err) throw err;而不是实际的错误处理? -
看来加载的页面
/business/:business提供了响应。我认为您将客户端 JavaScript 与 Node.js 混淆了。服务器没有陷入无限循环,您的浏览器代码是。
标签: javascript node.js mongodb express handlebars.js