提问者:小点点

使用Node. js和MySQL将数据插入表中的问题


我有一个问题插入表中的数据从我的超文本标记语言形式在网站上.如果你能帮助我,我会很感激.这里是我的代码:

用户. js:

const express = require("express");
const router = express.Router();
const db = require("../database");

router.get("/form", (req, res, next) => {
  res.render("users.ejs");
});

router.post("/create", (req, res, next) => {
  let userDetails = req.body;
  let sql = "insert into users set ?";
  db.query(sql, userDetails, (err, results, fields) => {
    if (err) throw err;
    console.log("user data inserted successfully");
  });
 
  res.redirect("back");
});

module.exports = router;

用户. ejs:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
</head>
<body>
    <div class='user-detail'>
        <h2>create user data</h2>
        <form action="/users/create" method="post">
            <label>Full Name</label>
            <input type="text" placeholder="enter fullname" name="fullName" required>
            <label>Email Address</label>
            <input type="email" placeholder="enter email address" name="emailAddress" required>
            <label>City</label>
            <input type="text" placeholder="enter full city" name="city">
            <label>Country</label>
            <input type="text" placeholder="enter full country" name="country">
            <button type="submit">Submit</button>
        </form>
    </div>
</body>
</html>

错误:

PSC:\用户\yaran\桌面\mysql. ejs.node


共2个答案

匿名用户

如果您的req. body真的只包含一个变量,则必须将其放在方括号中。

const express = require("express");
const router = express.Router();
const db = require("../database");
const bodyParser = require('body-parser');
router.use(bodyParser.urlencoded({ extended: true }));

router.get("/form", (req, res, next) => {
  res.render("users.ejs");
});

router.post("/create", (req, res, next) => {
  let userDetails = req.body;
  console.log(userDetails);
  let sql = "insert into users set ?";
  db.query(sql, [userDetails], (err, results, fields) => {
    if (err) throw err;
    console.log("user data inserted successfully");
  });
 
  res.redirect("back");
});

module.exports = router;

匿名用户

在'?'附近使用的语法在第1行

似乎来自:

insert into users set ?

我看到2个问题:

  • 如果插入,没有简单地在末尾设置…的插入语法。(更多地学习MySQL。)
  • db. query()替换 "?". (学习node.js more)