首页 > 解决方案 > 我在这样的表中插入一行,但它不起作用

问题描述

这是我的代码

var express = require("express");
var router = express.Router();
var db = require("../database");
router.get("/form", function (req, res, next) {
  res.render("users");
});
router.post("/create", function (req, res, next) {
  // store all the user input data
  const data = req.body;

  // insert user data into users table
  var sql = "INSERT INTO users ( `fullName`, `emailAddress`, `city`,`country`) 
  VALUES ('" + data.fullName + "', '" + data.emailAddress+ "', '" + data.city + "', 
  '" + data.country + "');";
  db.query(sql, data, function (err, data) {
    if (err) throw err;
    console.log("User dat is inserted successfully ");
  });
  res.redirect("/users/form"); // redirect to user form page after inserting the
  data;
});
module.exports = router;

我收到这样的错误

TypeError: Cannot read properties of undefined (reading 'fullName')
at /home/deekshitha/Videos/nodes/nodeapp/routes/_users.js:13:100
at Layer.handle [as handle_request]
(/home/deekshitha/Videos/nodes/nodeapp/node_modules/express/lib/router/layer.js:95:5)
at next 
(/home/deekshitha/Videos/nodes/nodeapp/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/deekshitha/Videos/nodes/nodeapp/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/deekshitha/Videos/nodes/nodeapp/node_modules/express/lib/router/layer.js:95:5)
at /home/deekshitha/Videos/nodes/nodeapp/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/home/deekshitha/Videos/nodes/nodeapp/node_modules/express/lib/router/index.js:335:12)
at next (/home/deekshitha/Videos/nodes/nodeapp/node_modules/express/lib/router/index.js:275:10)
at Function.handle (/home/deekshitha/Videos/nodes/nodeapp/node_modules/express/lib/router/index.js:174:3)
at router (/home/deekshitha/Videos/nodes/nodeapp/node_modules/express/lib/router/index.js:47:12)

标签: node.js

解决方案


这里的问题boby是未定义,因此当您尝试访问fullName的字段时,data您会看到该错误。

要解决这个问题,您需要先解析正文内容,您可以手动完成,也可以使用body-parser中间件。


推荐阅读