Arrays API在检索所有记录时返回对象数组,但在筛选时仅返回单个对象
首先,我对这一切都很陌生。我有一个简单的CRUD MERN堆栈应用程序,它使用.map从数据库输出无序的条目列表。我正在尝试实现一个输入框,可以用于根据参数筛选列表。当检索到所有结果时,一切正常,但是当只检索到一个结果时,我得到一个错误。map不是函数Arrays API在检索所有记录时返回对象数组,但在筛选时仅返回单个对象,arrays,reactjs,api,mern,Arrays,Reactjs,Api,Mern,首先,我对这一切都很陌生。我有一个简单的CRUD MERN堆栈应用程序,它使用.map从数据库输出无序的条目列表。我正在尝试实现一个输入框,可以用于根据参数筛选列表。当检索到所有结果时,一切正常,但是当只检索到一个结果时,我得到一个错误。map不是函数 TypeError: missions.map is not a function MissionsList.render src/Components/missionList.js:121 118 | <p>All data i
TypeError: missions.map is not a function
MissionsList.render
src/Components/missionList.js:121
118 | <p>All data is test data only</p>
119 |
120 |
> 121 | <ul className="list-group">
| ^ 122 | {missions.map((mission, index) => (
123 | <li
124 | className={
View compiled
▶ 18 stack frames were collapsed.
(anonymous function)
src/Components/missionList.js:77
74 | searchMsn() {
75 | MissionDataService.get(this.state.searchMsn)
76 | .then(response => {
> 77 | this.setState({ missions: response.data });
| ^ 78 | console.log(response.data);
79 | })
80 | .catch(e => {
下面是代码的API部分
router.get('/:msnNumber', function(req, res, next) {
Mission.findOne({msnNumber: req.params.msnNumber}, function(err, foundMission){
if (foundMission) {
res.send(foundMission);
} else {
res.send("No missions matching that mission number were found");
}
});
});
任何帮助都将不胜感激。我可以通过使用Mission.find而不是findOne来修复此问题。find似乎返回一个对象数组,即使只有一个结果,而findOne总是只返回一个对象。我可以通过使用Mission.find而不是findOne来解决这个问题。find似乎返回一个对象数组,即使只有一个结果,而findOne总是只返回一个对象
get(msnNumber) {
return http.get(`/missions/${msnNumber}`);
}
router.get('/:msnNumber', function(req, res, next) {
Mission.findOne({msnNumber: req.params.msnNumber}, function(err, foundMission){
if (foundMission) {
res.send(foundMission);
} else {
res.send("No missions matching that mission number were found");
}
});
});