在数据库中插入数据时的“空”值

时间:2019-10-17 10:11:08

标签: node.js database sqlite electron

我正在为学校开发电子应用程序。当我想使用nodejs在我的sqlite数据库中插入数据时,它将用空值填充数据库。我从输入值中获取数据。

数据库图片:https://i.imgur.com/N9dUmBQ.png

这是我的代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Tableau de patient</title>
    <link rel="stylesheet" href="index.css">
  </head>
  <body>
    <h1>Ajouter un patient</h1>
    <input type="text" name="nom" placeholder="nom" id="lastname">
    <input type="text" name="prenom" placeholder="prenom" id="name">
    <br>
    <input type="text" name="age" placeholder="age" id="year">
    <input type="text" name="sexe" placeholder="sexe" id="genre">
    <br>
    <button type="button" name="sendData" id="send">Creer</button>
    <script>
    const sqlite3 = require('sqlite3').verbose();

    // open the database
    let db = new sqlite3.Database('./database.db', sqlite3.OPEN_READWRITE, (err) => {
    if (err) {
      console.error(err.message);
    }
    console.log('Connected to the database.');
    });

      var Inom = document.querySelector('#lastname').value;
      var Iprenom = document.querySelector('#name').value;
      var Iage = document.querySelector('#year').value;
      var Isexe = document.querySelector('#genre').value;

      var parameters = [Inom, Iprenom, Iage, Isexe];
      var sql = 'INSERT INTO patient(nom, prenom, age, sexe) VALUES (?, ?, ?, ?)';

      var btn = document.getElementById("send")
      btn.addEventListener('click', function(){
        console.log("ok")
        db.run(sql, [parameters],function(err) {
          if (err) {
            console.error(err.message);
          }
        })
        db.close((err) => {
        if (err) {
          console.error(err.message);
        }
        console.log('Close the database connection.');
        });
      })
    </script>
  </body>
</html>

我不是问题的出处。感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

Dred, 您的querySelector值在clickevent之外。 页面加载时无法访问元素 将您的区块置于点击事件中

  var btn = document.getElementById("send")
  btn.addEventListener('click', function(){
    var Inom = document.querySelector('#lastname').value;
    var Iprenom = document.querySelector('#name').value;
    var Iage = document.querySelector('#year').value;
    var Isexe = document.querySelector('#genre').value;

    var parameters = [Inom, Iprenom, Iage, Isexe];
    var sql = 'INSERT INTO patient(nom, prenom, age, sexe) VALUES (?, ?, ?, ?)';
    console.log("ok")
    db.run(sql, [parameters],function(err) {
      if (err) {
        console.error(err.message);
      }
    })
    db.close((err) => {
    if (err) {
      console.error(err.message);
    }
    console.log('Close the database connection.');
    });
  })