使用MEAN Stack,我有三个针对同一URL/路由的GET请求。一种是获得长期情绪的概括摘要,另一种是按输入的日期获取情绪摘要,最后是与单个情绪条目关联的用户输入标签相关的情绪摘要。
我的第一个 GET 请求没有抛出任何问题,但第二个 GET 请求抛出错误:无法读取未定义的属性"长度">
错误指向以下行:
48| 约会中的每种情绪情绪
以下是与错误关联的相关代码:
玉
each emotion in dateEmotions
.side-emotions-group
.side-emotions-label
p.emotion-left= emotion.emotionName
p.pull-right(class= emotion.emotionLevel) (#{emotion.emotionLevel}%)
.side-emotions-emotion.emotion-left
获取请求
module.exports.emotionsListByDates = function (req, res) {
Emo.aggregate([
{ $match :
{ "date" : { $gte: ISODate("2018-04-09T00:00:00.000Z"), $lt: ISODate("2018-04-13T00:00:00.000Z") } }
}, { "$group": {
"_id": null,
"averageHappiness": {"$avg": "$happiness"},
"averageSadness": {"$avg": "$sadness"},
"averageAnger": {"$avg": "$anger"},
"averageSurprise": {"$avg": "$surprise"},
"averageContempt": {"$avg": "$contempt"},
"averageDisgust": {"$avg": "$disgust"},
"averageFear": {"$avg": "$fear"},
}}
], function (e, docs) {
if (e) {
res.send(e);
} else {
res.render('dashboard', {
title: "ReacTrack - User Dashboard",
pageHeader: {
title: "User Dashboard",
strapline: "View your emotional data here."
},
dateEmotions: docs
})
}
});
};
这个问题已经很长了,但我有另一个 GET 请求指向该 URL,它没有抛出任何错误,唯一的区别是我没有在该查询中按日期匹配数据库记录。如果需要,我可以发布工作代码。
编辑
经过一些实验,如果我注释掉其他两条路线,我能够让三条路线中的每一条单独工作。当多个路由拉入多个请求时,会导致问题。例如,以下是ctrlDashboard.emotionsListByDates
当前工作的路由:
// Dashboard Routes
//router.get(/dashboard', ctrlDashboard.emotionsListGeneralised);
router.get('/dashboard', ctrlDashboard.emotionsListByDates);
//router.get('/dashboard', ctrlDashboard.emotionsListByTag);
如果我注释掉两条路线并让一条路线运行,并注释掉 Jade 文件中相应的each emotion in emotions
each emotion in dateEmotions
和each emotion in tagEmotions
块,并保留正确的块,那么该路线将起作用,这似乎是当我发射多条路线时。这是不好的做法,还是不正确的?如果在同一 URL 上,所有查询都应该在一个 GET 请求中吗?
谢谢。
抱歉,路由和 RESTful API 的新手,但经过对该主题的一些研究,我现在明白了错误。
我假设路由中使用的 URL 是您希望数据填充的 URL......它仍然有点,但我认为如果我想填充仪表板页面,我必须使用该确切的路由,我没有意识到我可以将数据发布到不同的 URL 路由并从这些 URL 中获取数据来填充一个页面。
通过向这些路由添加/date
和/tag
并使用 AJAX 执行这些请求并填充主页来修复。
谢谢大家。
我有同样的问题,但我使用的是React+Redux+Fetch。那么,在同一时间从同一页面将多个请求发送到特定 URL 不是一个好的做法吗?
我会知道是什么导致了这个问题。我发现一些关于它的讨论可能是猫鼬问题。
我的代码:
MymongooObject.find(query_specifiers, function(err, data) {
for (let i = 0; i < data.length; ++i) {
...
}
}
错误:
类型错误: 无法读取未定义的属性"长度">