【发布时间】:2020-05-14 08:31:12
【问题描述】:
我目前有这段代码,它通过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);
});
【问题讨论】:
标签: mysql node.js express handlebars.js