Javascript Express res.render卡在无限循环中
步骤: 从mongodb中提取数据以填充搜索页面上的链接。能够单击链接将最终用户带到由mongodb自动填充的通用业务页面。使用来自mongodb的JSON数据呈现页面 问题: res.render卡在无限循环中(也不会引发错误) 我尝试添加一个if语句,这样res.render就不会再次渲染,但仍然卡在循环中 routes/business.jsJavascript Express res.render卡在无限循环中,javascript,node.js,mongodb,express,handlebars.js,Javascript,Node.js,Mongodb,Express,Handlebars.js,步骤: 从mongodb中提取数据以填充搜索页面上的链接。能够单击链接将最终用户带到由mongodb自动填充的通用业务页面。使用来自mongodb的JSON数据呈现页面 问题: res.render卡在无限循环中(也不会引发错误) 我尝试添加一个if语句,这样res.render就不会再次渲染,但仍然卡在循环中 routes/business.js router.get('/:business', (req, res) => { console.log(req.params.bus
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;
module.exports.getBusinessByUrl = function (businessUrl, callback) {
const query = { business_url: businessUrl };
Business.find(query, callback);
};
models/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;
module.exports.getBusinessByUrl = function (businessUrl, callback) {
const query = { business_url: businessUrl };
Business.find(query, callback);
};
以下是它在浏览器中的外观:
如果您需要任何其他代码,请告诉我。经过一段时间的搜索,我找不到任何有用的代码。我终于明白了。碰巧,当我注释掉行
时,它停止无限加载。A我也感谢所有试图帮助我的人。嘿@Masson Curtis。介意告诉我们在getBusinessByUrl
func下面发生了什么吗?是的,没问题。如果单个请求的查找失败,您真的想停止服务器吗?这就是throw err
将要做的,可能需要重新思考一下……为什么你有if(err)throw err代码>而不是实际的错误处理?看起来加载的页面提供了响应。我认为您混淆了客户端JavaScript和Node.js。服务器没有陷入无限循环,您的浏览器代码是。