Отправить запрос с понедельника goose и Express - PullRequest
0 голосов
/ 24 февраля 2020

Я работаю над простым проектом отслеживания, изучая приложения 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()
})
...