【发布时间】:2020-01-27 23:15:06
【问题描述】:
我如何使用 nodejs、mysql、forEach 尝试使用 textarea 标签将电子邮件保存在我的数据库中,并使用唯一的 ID,基于这个问题
Insert multiple email to mysql using single textarea
For-each over an array in JavaScript
javascript split on non-alphanumeric an keep delemiters at start
<form class="" action="/registration/instudent/{{id_school}}/{{mat}}/{{grade}}" method="post">
<textarea name="email" ></textarea>
<button class="btn btn-lg">Save</button>
</form>
使用 PHP 基础中的示例,在我的 example.js 文件中我有这段代码,尝试保存所有三个变量。
router.post('/instudent/:id_school/:mat/:grade', isLoggedIn, async (req,res) => {
const { id_school, mat, grade } = req.params;
const { email } = req.body;
var uStudent = {
id_school,
mat,
grade,
email
}
Object.keys(uStudent).forEach(function (key){
console.log(uStudent[key]);
db.query('INSERT INTO date set ?', uStudent);
});
//res.redirect('/');
});
保存到我的数据库时,错误地插入了文本。 在我的数据库中,它以这种方式插入我。
有什么指南可以查看我做错了什么以及 textarea 标签中的每封电子邮件都有一个唯一的 id 吗?
【问题讨论】:
-
我假设数据以
"example1@gmail.com\nexample2.gmail.com\n..."的形式出现,这意味着您需要在\n上拆分并遍历该数组。 -
我正在尝试使用拆分
const x = uStudent.split(\n);属性,但它告诉我: UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'split' of undefined -
您将不得不向我们提供更多关于此的背景信息。我想它应该是
email.split(/\n/),但这只是猜测,不知道你收到的格式。 -
目前我展示的代码以这种方式保存数据。 [drive.google.com/file/d/1ahGNCxDoB5KzxZ0XLq_PYFb8vXGHFkG9/…我想要的就是这样插入数据[drive.google.com/file/d/1wl_8jc7PQ6zvKPhp0qkcVscrx_wY1Qxh/…
-
Google 文档链接没有帮助。始终最好让您的问题保持独立,这样人们就无需四处寻找回答问题所需的所有信息。