将项目保存在猫鼬和monoDB中

时间:2020-06-29 15:36:00

标签: node.js mongodb express mongoose postman

我正在尝试连接到mongoDB并在其中保存一个新用户。

当我运行快递服务器时,数据库已连接,但发帖请求似乎没有发生。

有人可以检查我的代码并帮助我找到问题吗?

**当我在邮寄邮件上发送请求时,邮递员以“无法获得响应,错误:套接字挂断”结尾。

我在下面附上我的代码:

我的服务器:

const express = require('express')
const app = express();
const mongoose = require('mongoose')
const dotenv = require('dotenv')
const authRoute = require('./routes/aouth')

dotenv.config();

//conect to db
mongoose.connect(mongodb://localhost/users, { useUnifiedTopology: true, useNewUrlParser: true }, () => console.log("connected!"))

//middleware 
app.use(express.json());

//route middleware
app.use('/api/user', authRoute);

app.listen(3000, () => console.log("listening on port 3000!"))

我的User.js:

const mongoose = require('mongoose')
const userSchema = new mongoose.Schema({
    password: {
        type: String,
        required: true
    },
    date: {
        type: Date,
        default: Date.now
    }
})
module.exports = mongoose.model('User', userSchema);

我的路由器(routes / aouth.js):

  router.post('/reg', async(req, res) => {
    const user = new User({
        password: req.body.password
    })
    try {

        const savedUser = await user.save()
        res.status(201).json(savedUser)
    } catch (err) {
        res.status(400).json({ message: err.message })
    }

})

关于邮递员,我的要求是:

POST http:// localhost:3000 / api / user / reg { “密码”:“ 1234” }

希望你们能帮助我!! 谢谢!!

3 个答案:

答案 0 :(得分:0)

我一眼就发现导入的路径是错误的。

const authRoute = require('./routes/aouth')

不是吗?

const authRoute = require('./router/auth')

为确保已连接到数据库,请添加以下行。

const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));

答案 1 :(得分:0)

您必须将此代码添加到服务器中。

app.use(express.urlencoded({extended: false}))

它将起作用。

答案 2 :(得分:0)

扩展@Daryl答案,@ Shir:正如您提到的routes文件夹名称是正确的。 但是您有一个名为auth.js的文件,并且在服务器文件中,您正在导入aouth

请确认您在服务器文件中指定了正确的导入文件名,否则这可能是导入路径问题。