javascript - 具有两个非常相似的数组的对象,一个显示另一个不显示
问题描述
我有一个对象,其中包含两个嵌入的对象数组,在我看来它们几乎相同,如我的数据库中所示:
但是当我尝试访问前端 javascript 中的一个数组时,它显然是空的。另一个不是,正如我将其记录到浏览器控制台时看到的那样:
数组中的对象几乎完全相同。我担心问题是当我将一个新对象推送到“利益相关者”数组时,异步函数在页面再次加载之前没有完成,但我在返回响应之前在该函数中使用 async/await
addStakeholder = async (req, res, next) => {
...
project.stakeholders.push(stakeholder)
await project.save()
res.status(200).json({
status: 'success',
project: project
谁能告诉我我在这里可能做错了什么?
编辑:对不起,我会尝试添加更多细节,所以在表单提交中有这个.....
createStakeholderForm.addEventListener('submit', async (e) => {
// getting properties etc, this all works
await createStakeholder({ stakeholders, project })
window.setTimeout(() => {
location.reload()
}, 1000)
})
它将它传递给这个 axios 函数....
createStakeholder = async (data) => {
try {
const url = `http://127.0.0.1:3000/stakeholder`
const res = await axios({
method: 'POST',
url: url,
data: data
})
if (res.data.status === 'success') {
showAlert('success', `Stakeholder created`)
}
} catch (err) {
showAlert('error', err.response.data.message)
}
}
并将帖子路由到此功能.....
addStakeholder = async (req, res, next) => {
const query = { _id: req.body.project }
const project = await Project.findById(query)
const stakeholder = req.body.stakeholders
project.stakeholders.push(stakeholder)
await project.save()
res.status(200).json({
status: 'success',
data: {
data: project
}
})
})
解决方案
虽然您的代码有什么问题并不明显。幸运的是,调试路径是。
开始追踪电线。听起来事情正在正确地保存在数据库中,但没有到达前端。我会在查询数据库的调用站点的后端控制台登录您的代码。确认它是你所期望的。假设可行,请在下游添加另一个 console.log,继续这样做,直到利益相关者数据消失。本练习将向您展示代码中涉众被丢弃的位置。
推荐阅读
- css - CSS文本并排相同高度
- python - ModuleNotFoundError:没有名为“tensorflow.examples”的模块
- entity-framework - 在 FromSql Entity Framework Core 方法中使用 Inner Join
- javascript - ES6 导入导出不起作用
- html - Ionic 3 / angular ngForm不发送数据
- c - 两个整数符号相同
- java - Hibernate Eclipse Oxygen:无法加载 AnnotationConfiguration
- node.js - 错误:找不到模块“快速会话”
- c++ - 使用“findHomography”和“warpPerspective”时的旋转图像
- android - 错误的第一个参数类型错误