Вставить несколько текстовых текстовых областей в node js для каждого - PullRequest
1 голос
/ 27 января 2020

Как я работаю с nodejs, mysql, forEach, пытаясь сохранить электронную почту на моем BD с уникальным идентификатором, используя тег textarea, на основе этого вопроса

Вставить несколько по электронной почте mysql, используя одну текстовую область

For-each над массивом в JavaScript

javascript, разделенных на не-alphanumeri c a keep deletemiters при запуске

<form class="" action="/registration/instudent/{{id_school}}/{{mat}}/{{grade}}" method="post">

<textarea name="email" ></textarea>            
<button class="btn btn-lg">Save</button>

</form>

Используя пример в базе PHP, в моем примере файла. 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('/');
});

Если я пытаюсь сохранить все переменные, выполняя l oop асинхронно, я нахожу следующую ошибку.

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)");

В моей базе данных я вижу только пустые поля, кто-то может помочь мне или дать мне руководство, чтобы узнать, что я делаю неправильно.

1 Ответ

0 голосов
/ 28 января 2020

Большое спасибо за помощь, это правильно, вы сказали мне 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('/');
});
...