Node.js Nodejs-处理多个阵列
我有一篇带有文字、图像、视频和标签选项的帖子。除了文本rest是可选的之外,现在使用异步如何处理标记为空的情况,然后上载图像,如果没有提供图像,然后上载视频,如果所有标记都已给出,那么如何上载图像、视频,然后保存在db中? 以下是示例输入Node.js Nodejs-处理多个阵列,node.js,express,mongoose,Node.js,Express,Mongoose,我有一篇带有文字、图像、视频和标签选项的帖子。除了文本rest是可选的之外,现在使用异步如何处理标记为空的情况,然后上载图像,如果没有提供图像,然后上载视频,如果所有标记都已给出,那么如何上载图像、视频,然后保存在db中? 以下是示例输入 images: [{"image":"image1"},{"image":"image2"}] videos: [{"video":"video1"},{"video":"video2"}] tags: [{"userId":2},{"userId":23}
images: [{"image":"image1"},{"image":"image2"}]
videos: [{"video":"video1"},{"video":"video2"}]
tags: [{"userId":2},{"userId":23} ]
text: having a good day :)
对于可选的视频和图像上载,请使用异步并行。内部并行如果您的服务不允许多个插入,那么您需要使用异步或映射
需要更多信息/代码示例budi还没有编写任何代码,我正在尝试了解如何使用async处理这些多个阵列您将在图像、视频等的异步函数中使用try/catch您可以共享一个链接吗如何使用它?我是新的节点;
const async = require("async");
// example data
const data = {
images: [{"image":"image1"},{"image":"image2"}]
videos: [{"video":"video1"},{"video":"video2"}]
tags: [{"userId":2},{"userId":23} ]
text: "having a good day :)"
}
if(!data.text){
//return 'text is required' message
}
else{
const imageUrls = [];
const videoUrls = [];
// http://caolan.github.io/async/docs.html#parallel
async.parallel({
uploadImages: function(callback){
async.each(data.images, function(image, eachCallback){
// upload each image
// push returned url in imageUrls
// call return eachCallback(), or if err then return eachCallback(err)
}, function(err){
if(err){
return callback(err)
}
else{
return callback()
}
})
},
uploadVideos: function(callback){
async.each(data.videos, function(video, eachCallback){
// same process as images
}, function(err){
if(err){
return callback(err)
}
else{
return callback()
}
})
}
}, function(err, results){ //final callback of async parallel
if(err){
//handle err
}
else{
const obj = {
images: imageUrls,
videos: videoUrls,
tags: data.tags,
text: data.text
}
//insert obj to db and respond with success message
}
})
}