javascript - 在 Javascript/NodeJs 中调用方法两次时 JSON 返回空
问题描述
我有这个方法使用 Loopback(Node.Js 框架)来返回一个由 MP3 和视频组成的 JSON。
这是我到目前为止的代码
let names = await app.models.cm_comediens.getValue();
let sonMp3 = await app.models.cm_comediens.getMp3ById(id);
const mp3 = sonMp3.map(id => {
let mappedObj = {}
Object.keys(id).forEach( async (key)=> {
let medias = await app.models.cm_comediens_medias.find({ where: {idMedia: id[key].idMedia}} )
mappedObj[key] = {
"Titre": medias.map(person => person.intitule ).toString(),
"Filename": medias.map(person => person.filename ).toString(),
"Langue": names.find(y => y.idValue === id[key].qfLangue).fr,
"Type": names.find(y => y.idValue === id[key].qfType).fr,
"Description": id[key].description,
"Intention1": names.find(y => y.idValue === id[key].qfInterpretation1).fr,
"Intention2": names.find(y => y.idValue === id[key].qfInterpretation2).fr,
"Intention3": names.find(y => y.idValue === id[key].qfInterpretation3).fr,
}
});
return mappedObj;
});
let video = await app.models.cm_comediens.getVideoById(id);
const videoss = video.map(id => {
let mappedObj = {}
Object.keys(id).forEach( async (key)=> {
let medias = await app.models.cm_comediens_medias.find({ where: {idMedia: id[key].idMedia}} )
mappedObj[key] = {
"Titre": medias.map(person => person.intitule ).toString(),
"Filename": medias.map(person => person.filename ).toString(),
"Langue": names.find(y => y.idValue === id[key].qfLangue).fr,
"Type": names.find(y => y.idValue === id[key].qfType).fr,
"Description": id[key].description,
"Intention1": names.find(y => y.idValue === id[key].qfInterpretation1).fr,
"Intention2": names.find(y => y.idValue === id[key].qfInterpretation2).fr,
"Intention3": names.find(y => y.idValue === id[key].qfInterpretation3).fr,
}
});
return mappedObj;
});
result.mp3=mp3;
result.video=videoss;
var resultfinal = [result]
return resultfinal;
问题是当我运行它时它返回:
当我删除 let medias = await app.models.cm_comediens_medias.find({ where: {idMedia: id[key].idMedia}} )
视频中的“Titre”和“FileName”元素时,一切正常,并且视频的结果也正确显示。此外,当我执行 console.log(medias) 时,结果如下所示:
[ { idMedia: 42085,
idComedien: 1426,
intitule: 'Tale of us Distante',
typeMedia: 'video',
filename: 'http://localhost:3000/Who Loves The Sun (Original Mix).mp4',
originalFilename: 'Who Loves The Sun (Original Mix).mp4',
triComedien: 0,
timestampCreation: 2019-06-13T10:56:03.000Z,
timestampModification: 2019-06-13T10:56:03.000Z } ]
(node:13280) [DEP0079] DeprecationWarning: Custom inspection function on Objects via .inspect() is deprecated
[ { idMedia: 42087,
idComedien: 1426,
intitule: 'cxwccw',
typeMedia: 'video',
filename: 'http://localhost:3000/Who Loves The Sun (Original Mix).mp4',
originalFilename: 'Who Loves The Sun (Original Mix).mp4',
triComedien: 0,
timestampCreation: 2019-06-13T11:15:11.000Z,
timestampModification: 2019-06-13T11:15:11.000Z } ]
所以我不知道到底出了什么问题。是因为我两次调用同一个函数吗?任何帮助,将不胜感激。谢谢
解决方案
推荐阅读
- python - TensorFlow CondaVerificationError - 将 Pip 与 Conda 混合
- java - 在无向图中找到两个节点之间断开连接的最小权重
- python - 是否有动态调度系统可以更好地实施基于订阅的支付系统?
- sql - 每个组内的 SQL 连接
- php - ORDER BY 和 WHERE 变量和 LIMIT
- reactjs - Reactjs 更新祖父母状态
- html - 知道如何让两张桌子并排,第三张桌子在底部
- angular - Angular 8:ReplaySubject 清除删除历史记录和缓存
- php - 从 Excel 导入时,百分号 (%) 以奇怪的形式出现在我的数据库中
- c++ - 删除句点和空格的功能