У меня есть этот код, который вводит данные с помощью тега textarea.
<form class="" action="/registration/instudent/{{id_school}}/{{tag}}" method="post">
<textarea name="emails" ></textarea>
<button class="btn btn-lg">Send</button>
</form>
В моем файле js есть следующее
router.post('/instudent/:id_school/:tag', isLoggedIn, async (req,res) => {
const { id_school, tag} = req.params;
const { emails } = req.body;
const uStudent = {
id_school,
tag
};
let _emails = emails.split(/\r?\n/);
_emails.forEach(email => {
// update uStudent email field
uStudent.email = email;
// insert the uStudent
console.log(uStudent);
db.query('INSERT INTO date set ?', uStudent);
});
});
Отправка данных и просмотр их через консоль означает, что все идет хорошо.
{ id_school: '34',tag: '20',email: 'example1@gmail.com' }
{ id_school: '34',tag: '20',email: 'example2@gmail.com' }
Проблема заключается в том, что когда они сохраняются в базе данных, они только сохраняет последнее добавленное электронное письмо.
Я пытаюсь сохранить электронные письма следующим образом:
Попробуйте изменить .split на .match, и это не сработает, и измените .split таким образом, но ничего.
let _emails = emails.split('/\r?\n/');
let _emails = emails.split(/\n/);
Я попытался войти .split в foreach, но я не могу его правильно сохранить в базе данных.
_emails.forEach(email => {
let _emails = emails.split(/\r?\n/);
// update uStudent email field
uStudent.email = email;
// insert the uStudent
console.log(uStudent);
db.query('INSERT INTO date set ?', uStudent);
});