mysql - 在node js forEach中插入多个文本单个textarea

标签 mysql node.js express foreach handlebars.js

基于这个问题,我如何使用nodejs、mysql、forEach尝试使用textarea标签以唯一的id将电子邮件保存在我的BD中

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 中,我有此代码,尝试仅保存我的 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('\r\n');

//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)

我设法插入数据的正确方法是帮助我解决这个问题

Why is “forEach not a function” for this object?

然后我的代码看起来像这样,我希望它有所帮助,因为我已经尝试使用 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('/');
});

关于mysql - 在node js forEach中插入多个文本单个textarea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59937504/

相关文章:

php - 使用 PHP 更新数据库中现有库存水平和价格的数组值

php - 如何为多个查询编写 if 条件,例如

javascript - 将 require.main 传递给 path.dirname

javascript - $locationProvider html5mode 导致刷新时出现 "cannot GET"错误 - AngularJS Node 应用程序

sql - MYSQL如何获取最后更新记录的主键?

php - 如何MySQL两个日期相加并与当前时间戳进行比较

javascript - Node (Express) 上的套接字 IO 的 cURL 请求

javascript - Node.js 应用程序中的 Controller 到底代表什么(MVC 架构)

node.js - Storm 路径用户信息

mongodb - 如何为 MEAN 应用程序编写集成测试