我正在尝试连接到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” }
希望你们能帮助我!! 谢谢!!
答案 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
。
请确认您在服务器文件中指定了正确的导入文件名,否则这可能是导入路径问题。