Я работаю над простым проектом отслеживания, изучая приложения CRUD, и не могу понять, как отправить данные в MongoDB с помощью запроса Post. Когда я нажимаю кнопку «отправить» в моей форме, меня перенаправляют на http://localhost: 3000 / api / упражнение / новый пользователь , но все, что он говорит «не найдено», и моя коллекция базы данных MongoDB опорожнить. Что я делаю не так?
Это то, что у меня есть в html:
<form action="/api/exercise/new-user" method="post">
<h3>Create a New User</h3>
<p><code>POST /api/exercise/new-user</code></p>
<input id="uname" type="text" name="username" placeholder="username">
<input type="submit" value="Submit">
</form>
А это мой бэкэнд:
const express = require('express')
const app = express()
app.use(express.urlencoded())
const cors = require('cors')
require('dotenv').config();
const mongoose = require('mongoose')
const Schema = mongoose.Schema;
mongoose.connect(process.env.MONGO_URI,{ useNewUrlParser: true, useMongoClient: true, useCreateIndex: true, useUnifiedTopology: true })
const connection = mongoose.connection;
connection.once('open', () => {
console.log("MongoDB database connection established successfully");
})
app.use(cors());
app.use(express.json());
const userSchema = new Schema({
username: {
type: String,
required: true,
unique: true,
trim: true,
minlength: 3
}
})
const User = mongoose.model('User', userSchema);
app.post('/api/exercise/new-user', (req,res) =>{
const name = req.body.username
const newUser = new User({name})
newUser.save(function(err) {
if(err){
console.log(err)
}
else{
res.json({'username': newUser.username})
}
})
res.end()
})