деструктурирование массива мангуст создает

#javascript #node.js #arrays #mongodb #mongoose

Вопрос:

есть ли какой-либо другой способ вставить данные в мангуста без использования декструктуры массива у меня есть код ниже, он не работает, также он неправильно вставляется в базу данных

 const data = req.file.originalname.split('.')[0].split('_');
if (data.length < 5) throw new Error('Invalid file name');

const content = await fs.readFile(req.file.path, 'utf8');
await orders.create({ data, content });
 

я могу сделать эту работу, используя этот код, используя описание массива, как показано ниже, я хочу знать, есть ли какой-либо способ без использования описания, а просто используя переменные данные, как в моем коде выше

 const data = req.file.originalname.split('.')[0].split('_');
if (data.length < 5) throw new Error('Invalid file name');

// const [no_telp, type, timespan, name, unique_code] = data;
const content = await fs.readFile(req.file.path, 'utf8');
await orders.create({ no_telp, type, timespan, name, unique code, content });
 

Ответ №1:

То, что вы делаете, не является деструкцией массива. Деструктурирование массива означает извлечение данных из массива. Примером деструктурирования массива может быть const listCopy = [...list] или const listAdded = [...list, 12, 48] . Если вы имеете в виду эту часть create({ no_telp, type, timespan, name, unique code, content }); , вы предоставляете необходимые данные в метод создания. Вы можете создать abject заранее и просто отправить его в метод создания. const userData = { no_telp, type, timespan, name, unique code, content }; await orders.create(userData); Кроме того, вы пытаетесь сохранить строковые данные. После чтения файла с fs.readFile() вами необходимо проанализировать его, чтобы правильно манипулировать и сохранять в базе данных. Попробуй это:

 const stringData = await fs.readFile(req.file.path, 'utf8');
const content = JSON.parse(stringData)
console.log(content) // see the data
const userData = {no_telp, type, timespan, name, unique code, content};
await orders.create(userData);
 

Комментарии:

1. я не имею в виду это так, то, что я хочу делать не с контентом, а с кодом ниже const [no_telp, тип, промежуток времени, имя, уникальный код] = данные; я могу использовать его так, как мой код, есть ли какие-либо способы, кроме использования такого массива описания, чтобы я мог использовать его таким образом.ждите заказов. создайте({ данные, контент });