用户数据不会存储到 mongobd 实例中

问题描述 投票:0回答:1

我使用express和mongoose来保存数据。这是我的代码

连接.js

const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost:27017/dribbble", {useNewUrlParser: true,})
  .then(() => console.log("connection start"));

用户架构.js

const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
    fname:{
        type:String,
        required:true,
    },
    userName:{
        type:String,
        required:true,
        unique:true,
    },
    email:{
        type:String,
        required:true,
    },
    password:{
        type:String,
        required:true,
    },
    terms:Boolean,
    image:String,
    location:String,
})
const user = new mongoose.model("user",userSchema);
module.exports = user;

routes.js

const express = require("express");
const router = express.Router();
const user = require("../Models/userSchema");


//CREATE NEW USER PART 1
router.post("/create-user",(req,res) => {
    console.log(req.body);
    const body = req.body;
    const newUser = user(body);
    newUser.save().then(newUser => {
        console.log(req.body);
        res.status(200).send(newUser);
        res.body;
    }, err => {
        res.status(400).send("Something went wrong");
    })
});

router.get("/",(req,res) => {
    user.find({}).then(function (users) {
        res.send(users);
        });
})

module.exports = router;

和index.js

const express = require('express');
const app = express();
require('./DB/connection');
const router = require('./Routes/routes');
const cors = require("cors");
app.use(express.urlencoded({extended:true}))

const PORT = 5000;

const corsOptions = {
    origin: 'http://localhost:3000',
    methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
    credentials: true,
    optionsSuccessStatus: 204,
};

app.use(express.json());

app.use(cors(corsOptions));

app.use(router);


app.listen(PORT,() => {
    console.log(`running on ${PORT}`)
})

在route.js中的create-user api中,我可以看到第一个console.log,但看不到第二个。没有错误,但我在 mongoDB Compass 中仍然没有任何内容

我已经尝试寻找架构和模型中的问题,但我认为它看起来不错

node.js mongodb express mongoose mern
1个回答
0
投票

这是因为您没有使用

new
关键字。

根据 mongoose docs 如果您不通过

modelName.create=User.create(body)
创建文档,那么您必须首先创建该文档的实例。

创建文档有两种方法!

1:一个是使用new关键字

const newUser=new User(data)

2:使用

create method
我主要使用返回承诺的
create

© www.soinside.com 2019 - 2024. All rights reserved.