让我假设我有这个(摘要):
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
我希望我能弄清楚目标是什么。我确信有一种达到目标的优雅方法,所以有人可以给我一个方向。
谢谢
致谢
答案 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