创建结构化数据

时间:2018-10-25 14:31:32

标签: javascript node.js mongoose

让我假设我有这个(摘要):

var filesarray = [];
            if(req.files){
                req.files.forEach(function(file){
                    var fileName = file.filename;
                    var filePath = file.path;
                    filesarray.push(
                            filePath
                    );
        })
}

后来我用猫鼬推它:

DB.create({
              filepaths: filesarray,
              }), function (err, res) {
              if (err)  {
                throw err;
              }else{
                console.log("1 document inserted");
                DB.close()
            }}          
    });

我收到的结果并不是我真正想要的,因为在mongodb中,我得到一个逗号分隔的列表,例如:

filepaths
/files/1540474914824.png,/files/1540474914828.png,files/1540474914831.png

我想要类似的东西:

filepaths
       filename -> filepath
       filename -> filepath
       filename -> filepath

我希望我能弄清楚目标是什么。我确信有一种达到目标的优雅方法,所以有人可以给我一个方向。

谢谢

致谢

1 个答案:

答案 0 :(得分:0)

首先,您不能在am对象中拥有多个键,因此 $(document).ready(function() { $("form[name='contactf']").submit(function(e) { // do the extra stuff here e.preventDefault(); console.log(validateForm()); if(validateForm()){ $.ajax({ type: "POST", url: "mail.php", data: $(this).serialize(), success: function(data) { if(data.message == 'success'){ M.toast({html: 'Mensagem enviada com sucesso!'}) $('#first_name').val(''); $('#last_name').val(''); $('#subject').val(''); $('#email').val(''); $('#phone').val(''); $('#details').val(''); }else if(data.message == 'error'){ M.toast({html: 'Ops... Tente novamente dentro de alguns minutos.'}) } } }) } else ; }) function validateForm() { var name=document.forms["contactf"]["first_name"].value; var surname=document.forms["contactf"]["last_name"].value; var subject=document.forms["contactf"]["subject"].value; var mail=document.forms["contactf"]["email"].value; var phone=document.forms["contactf"]["phone"].value; var details=document.forms["contactf"]["details"].value; var isnum = /^\d+$/.test(phone); if(!isnum){ M.toast({html: 'O telefone deve conter apenas números!'}); return false; } else if (!name || !surname || !subject || !mail || !phone || !details) { M.toast({html: 'Preencha todos os campos!'}) return false; } else return true; } function id( el ){ return document.getElementById( el ); } }) 将不起作用。每个文件/路径都需要有一个唯一的名称

{filepaths: {file: '1', file: '2'}}

您可以使用var files = {}; if(req.files){ req.files.forEach(function(file){ var fileName = file.filename; var filePath = file.path; files[fileName] = filePath; }) } 来拥有对象数组,但这对我来说似乎比较麻烦

map