微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

POST到最新的MySQL表时出现ReactJS错误

如何解决POST到最新的MySQL表时出现ReactJS错误

我的MysqL数据库中有两个表。当我只有一张桌子时,一切工作正常。我创建了一个新表,当我运行命令“ node serve.js”时,它可以工作并且没有错误

新表用于管理登录用户的信息。当我按下“提交”按钮时,在“ UserInfo.js”文件中编译表单后遇到错误

enter image description here

在邮递员上,我收到错误消息,如果键入localhost:8080 / api / users,我得到“无法获取/ api / users 我的用户控制器:

const users = require("../controllers/user.controller.js");

  var router = require("express").Router();

  // Create a new Tutorial
  router.post("/users",users.create);

  // Retrieve all Tutorials
  router.get("/users",users.findAll);


  // Retrieve a single Tutorial with id
  router.get("/users/:id",users.findOne);

  // Update a Tutorial with id
  router.put("/users/:id",users.update);

  // Delete a Tutorial with id
  router.delete("/users/:id",users.delete);


  app.use('/api/users',router); 
};

和我的模型index.js:

const dbConfig = require("../config/db.config.js");

const Sequelize = require("sequelize");
const sequelize = new Sequelize(dbConfig.DB,dbConfig.USER,dbConfig.PASSWORD,{
  host: dbConfig.HOST,dialect: dbConfig.dialect,operatorsAliases: false,pool: {
    max: dbConfig.pool.max,min: dbConfig.pool.min,acquire: dbConfig.pool.acquire,idle: dbConfig.pool.idle
  }
});

const db = {};

db.Sequelize = Sequelize;
db.sequelize = sequelize;

db.tutorials = require("./tutorial.model.js")(sequelize,Sequelize);



module.exports = db;

我已经阅读了类似问题的答案,并在stackoverflow之外搜索了各种教程。 我正在学习,并且不到2个月前才开始学习,所以请不要告诉我Google,因为我自己无法解决。 感谢您的帮助。

解决。新控制器:

const users = require("../controllers/user.controller.js");

  var router = require("express").Router();

  // Create a new Tutorial
  router.post("/",users.create);

  // Retrieve all Tutorials
  router.get("/",users.findAll);


  // Retrieve a single Tutorial with id
  router.get("/:id",users.findOne);

  // Update a Tutorial with id
  router.put("/:id",users.update);

  // Delete a Tutorial with id
  router.delete("/:id",router); 
};

新模型index.js:

const dbConfig = require("../config/db.config.js");

const Sequelize = require("sequelize");
const sequelize = new Sequelize(dbConfig.DB,Sequelize);
db.users= require("./user.model.js")(sequelize,Sequelize)


module.exports = db;

解决方法

我调查了后端源,但发现您误解了如何定义路由。

const users = require("../controllers/user.controller.js");

  var router = require("express").Router();

  // Create a new Tutorial
  router.post("/",users.create);

  // Retrieve all Tutorials
  router.get("/",users.findAll);


  // Retrieve a single Tutorial with id
  router.get("/:id",users.findOne);

  // Update a Tutorial with id
  router.put("/:id",users.update);

  // Delete a Tutorial with id
  router.delete("/:id",users.delete);


  app.use('/api/users',router); 
};

这是您定义的后端源,但是您正在使用app.use定义路由,因此您可以像这样通过/ api / users / [sub-url]调用端点

端点:localhost:8080 / api / users / users 方法:POST

如果要使用localhost:8080 / api / users之类的端点,则应定义这样的后端路由。

{{1}}

我希望这会对您有所帮助。 问候。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。