我试图创建一个项目,允许用户输入“电子邮件”,“用户名”和“密码”注册到该网站,当我试图输入一个用户使用“用户名”,电子邮件”和“密码”进入这个网站,我得到以下错误:
Backend server is running
not connected
C:\Users\odewo\chat-app\NODE-REST-API\node_modules\mongoose\lib\drivers\node-mongodb-native\collection.js:149
const err = new MongooseError(message);
^
MongooseError: Operation `users.insertOne()` buffering timed out after 10000ms
at Timeout.<anonymous> (C:\Users\odewo\chat-app\NODE-REST-API\node_modules\mongoose\lib\drivers\node-mongodb-native\collection.js:149:23)
at listOnTimeout (node:internal/timers:557:17)
at processTimers (node:internal/timers:500:7)
下面是我的mongoose代码:
mongoose.connect(process.env.MONGO_URL, {
userNewUrlPaser: true,
useUnifiedTopology: true,
useCreateIndex: true,
})
.then(() => {
console.log('Connected to MongoDB');
})
.catch((e) => {
console.log('not connected');
});
这是路由的auth.js代码:
const router = require('express').Router();
const User = require('../models/User');
// REGISTER
router.get('/register', async (req, res) => {
const user = await new User({
username: 'samson',
email: 'samson@gmail.com',
password: '123456',
});
await user.save();
res.send('ok');
});
module.exports = router;
我将非常感谢你的帮助
6条答案
按热度按时间e3bfsja21#
Monogo Db Atlas ->网络访问-> IP访问列表-> IP地址更新为从任何地方访问我的作品。
原因:我的互联网提供商分配动态IP,每次我登录的IP地址的变化,这抛出错误。
l5tcr1uw2#
检查您的MONGO_URL并确保您的密码或用户名未包含在< >标记中。我认为你的代码很好,但很明显有一些问题。我会检查.env文件以确保。
ne5o7dgx3#
移除
await
无法解决问题。最好异步实现此函数。您必须登录到您的mongo
帐户,并从网络访问部分添加您的IP地址。0aydgbwb4#
你应该在新的User声明之前删除await,只在你等待promise的结果时使用await,就像在
await user.save()
中一样20jt8wwn5#
改变你的网址将解决这个问题,我也面临过一次。把这个
mongoose.connect('mongodb://127.0.0.1:27017');
和你的其他代码保持不变。vcirk6k66#
你可以解决这个问题,使用一个简单的密码为您的atlasDatabase的意思是避免使用任何特殊字符在您的密码,如“@”或“$”,如果你使用,那么他们必须是url编码,这就是为什么它是更好的,如果你避免特殊字符,它为我工作,我希望它也将为您工作。enter image description here