当我 POST 到我最新的 MySQL table 时出现 ReactJS 错误
ReactJS error when I POST to my newest MySQL table
我的 Mysql 数据库中有两个 table。当我只有一个 table 时,一切都很完美。我创建了一个新的 tables,当我 运行 命令“node serve.js”时它工作并且没有给出错误。
新的tables用于管理登录用户的信息。当我按下提交按钮时,在“UserInfo.js”文件中编译表单后遇到错误。
在邮递员上我得到错误,如果我输入 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;
我已经阅读了类似问题的答案并搜索了 Whosebug 之外的各种教程。
我在不到 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", 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);
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", 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);
};
这是您定义的后端源,但您正在使用 app.use 定义路由,因此您可以像这样通过 /api/users/[sub-url] 调用端点
端点:localhost:8080/api/users/用户
方法:POST
如果你想使用像 localhost:8080/api/users 这样的端点,那么你应该像这样定义后端路由。
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);
};
希望对您有所帮助。
问候。
我的 Mysql 数据库中有两个 table。当我只有一个 table 时,一切都很完美。我创建了一个新的 tables,当我 运行 命令“node serve.js”时它工作并且没有给出错误。
新的tables用于管理登录用户的信息。当我按下提交按钮时,在“UserInfo.js”文件中编译表单后遇到错误。
在邮递员上我得到错误,如果我输入 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;
我已经阅读了类似问题的答案并搜索了 Whosebug 之外的各种教程。 我在不到 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", 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);
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", 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);
};
这是您定义的后端源,但您正在使用 app.use 定义路由,因此您可以像这样通过 /api/users/[sub-url] 调用端点
端点:localhost:8080/api/users/用户 方法:POST
如果你想使用像 localhost:8080/api/users 这样的端点,那么你应该像这样定义后端路由。
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);
};
希望对您有所帮助。 问候。