У меня есть топор ios после публикации в / users / add, и я получаю ошибку 404. Может кто-нибудь, пожалуйста, дайте мне некоторое представление о том, что я делаю неправильно, пожалуйста.
Сервер. js
app.use("/users", require("./routes/users"));
делает так, чтобы маршруты всех пользователей использовали пользовательский контроллер
const express = require("express");
const cors = require("cors");
const mongoose = require("mongoose");
require("dotenv").config();
const app = express();
const PORT = process.env.PORT || 3000;
app.use(cors());
app.use(express.json());
const DATABASE = process.env.MONGODB_URI || "mongodb://localhost/MongoSetup";
mongoose.connect(DATABASE, {
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true,
});
mongoose.connection.once("open", () =>
console.log(`--> SERVER.JS: Connected to ${DATABASE}`)
);
mongoose.connection.on("error", (err) => {
console.log(`Mongoose connection err:\n${err}`);
});
app.use("/exercises", require("./routes/exercises"));
app.use("/users", require("./routes/users"));
app.listen(PORT, () => {
console.log(`--> SERVER.JS: Server Running: http://localhost:3000/`);
});
маршруты / пользователи. js
router.route("/add").post((req, res)
должен настроить маршрут для пользователей / добавить
const router = require("express").Router();
let User = require("../models/user.model");
router.route("/").get((req, res) => {
User.find()
.then(users => res.json(users))
.catch(err => res.status(400).json("Error: " + err));
});
router.route("/add").post((req, res) => {
const username = req.body.username;
const newUser = new User({username});
newUser.save()
.then(() => res.json("User Added!"))
.catch(err => res.status(400).json("Error: " + err));
});
module.exports = router;
create-user.component. js
axios.post("/users/add", user)
Следует отправить нового пользователя в / users / add
import React, { Component } from "react";
import axios from "axios";
export default class CreateUser extends Component {
state = {
username: "",
};
handleInputChange = (event) => {
const { name, value } = event.target;
this.setState({
[name]: value,
});
};
handleSubmit = (event) => {
event.preventDefault();
const user = {
username: this.state.username
}
console.log(user);
axios.post("/users/add", user)
.then(res => console.log(res.data));
this.setState({
username: ""
})
};
render() {
return (
<div>
<h3>Create New User</h3>
<form onSubmit={this.handleSubmit}>
<div className="form-group">
<label>Username: </label>
<input
required
name="username"
className="form-control"
value={this.state.username}
onChange={this.handleInputChange}
/>
</div>
<div className="form-group">
<input type="submit" value="Create User" className="btn btn-primary" />
</div>
</form>
</div>
);
}
}