我如何使用nodejs,mysql,forEach尝试使用唯一ID将电子邮件保存在我的BD中,使用textarea标签,基于这个问题
使用单个文本区域将多封电子邮件插入 mysql
在 JavaScript 中对数组进行 for-each
JavaScript 在非字母数字上拆分,在开始时保留 Delemiters
<form class="" action="/registration/instudent/{{id_school}}/{{mat}}/{{grade}}" method="post">
<textarea name="email" ></textarea>
<button class="btn btn-lg">Save</button>
</form>
使用 PHP base 中的示例,在我的文件示例中.js我有此代码,请尝试仅保存我的 textarea 标签的电子邮件值。
router.post('/instudent/:id_school/:mat/:grade', isLoggedIn, async (req,res) => {
const { id_school, mat, grade } = req.params;
const { email } = req.body;
const e = email.match('rn');
//var e = ["a@gmail.com", "b@gmail.com", "c@gmail.com"];
//const uStudent = {
// id_school,
// mat,
// grade,
// email
// };
e.forEach(function(email, indice, array) {
// await db.query('INSERT INTO date set ?', [uStudent]);
db.query("INSERT INTO date (email) VALUES (email)");
console.log('this is my email:',email);
});
//res.redirect('/');
});
如果我尝试通过异步执行循环来保存所有变量,则发现以下错误。
const uStudent = {
id_school,
mat,
grade,
email
};
await db.query('INSERT INTO date set ?', [uStudent]);
UnhandledPromiseRejectionWarning: TypeError: uStudent.forEach is not a function
如果我以这种方式插入两封电子邮件。
db.query("INSERT INTO date (email) VALUES (email)");
在我的数据库中,我只看到空白字段,有人可以帮助我或给我一个指南,让我知道我做错了什么。
非常感谢您的帮助,您告诉我 tadman 以这种方式正确插入到我的数据库中是正确的。
db.query('INSERT INTO date set ?', uStudent)
我设法插入数据的正确方法是在这个问题上帮助我
为什么这个对象的"forEach 不是函数"?
然后我的代码看起来像这样,我希望它有所帮助,因为我几天来一直在尝试使用 forEach 保存在数据库中。
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
}
Object.keys(uStudent).forEach(function (key){
console.log(uStudent[key]);
db.query('INSERT INTO date set ?', uStudent);
});
//res.redirect('/');
});