【发布时间】:2021-05-30 07:45:32
【问题描述】:
在邮递员中单击发送后大约 5 秒我收到此错误:
{
"message": {}
}
错误发生的地方:
router.post('/', async (req, res) => {
const post = new Post({
title: req.body.title,
description: req.body.description
});
try {
const savedPost = await post.save();
res.json(savedPost);
} catch (err) {
res.json({message: err}); // here
}
});
我在 console.log 中连接了数据库(mongo 由 docker-compose 运行)
mongodb:
image: mongo
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
MONGO_INITDB_DATABASE: test_db
ports:
- 27017:27017
DB_CONNECTION=mongodb://admin:admin@mongodb:27017/test_db
mongoose.connect(
process.env.DB_CONNECTION,
{
useNewUrlParser: true,
useUnifiedTopology: true
},
() => console.log('connected to DB!!!') // call back
);
帖子架构:
const mongoose = require('mongoose');
// describe how the data looks
const PostSchema = mongoose.Schema({
title: {
type: String,
required: true
},
description: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
},
})
module.exports = mongoose.model('Posts', PostSchema)
但是,当我将 DB_connection 更新为: DB_CONNECTION=mongodb://admin:admin@mongodb:27017(删除/test_db) 问题消失了,我完美地将文档添加到 mongodb(但不在 test_db 中)
谁知道问题出在哪里? 非常感谢!!
【问题讨论】:
-
错误是什么?,看起来像是身份验证/权限问题。
-
我猜这也是 auth 权限错误...错误为空...res.json({message: err}) 给出 {"message":{}}。我看到了这个非常相似的帖子:stackoverflow.com/questions/66403766/…
-
我在这里有一些线索..当我将连接字符串更改为 DB_CONNECTION=mongodb://admin:admin@mongodb:27017(没有 /test_db)时,它可以工作。谁能解释一下为什么..