当前位置: 首页 > 知识库问答 >
问题:

我的架构未保存到我的数据库(MongoDB)

微生新翰
2023-03-14

我正在学习一个教程,但在一个点上卡住了。我尝试在邮递员中发出一个POST请求,但返回一个我无法解决的错误。错误如下:

(节点:3224)UnhandledPromiseRejectionWarning:MongooseError:操作users.insertone()缓冲在10000ms超时后超时。(C:\users\murad\desktop\full stack\node\node_modules\mongoose\lib\drivers\node-MongoDB-native\collection.js:185:20)在listOnTimeout(内部/timers.js:549:17)在processstimers(内部/timers.js:492:7)(使用node--trace-warnings...来显示警告是在哪里创建的)(节点:3224)unhandledpromiseerejectionwarning:未处理的承诺拒绝。这个错误可能是由于抛出一个没有catch块的异步函数内部,或者是由于拒绝了一个未用.catch()处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志--unhandled-rejections=strict(请参见https://nodejs.org/api/CLI.html#CLI_unhandled_rejections_mode)。(拒绝ID:1)(节点:3224)[DEP0018]拒绝警告:拒绝未处理的承诺。将来,未处理的承诺拒绝将以非零退出代码终止node.js进程。

代码在下面

// index.js File
const express = require('express');
const app = express();
const mongoose = require('mongoose');
// const dotenv = require('dotenv');

// Import Routes
const authRoute = require('./routes/auth');

// Route middleware
app.use(express.json());
app.use('/api/user', authRoute);

// dotenv.config();
const myUrl = 'mongodb+srv://murad:<password>@cluster0.ag5vr.mongodb.net/DatabaseName?retryWrites=true&w=majority';

mongoose.connect(myUrl,
    { useNewUrlParser: true, useUnifiedTopology: true },
    () => {
        console.log('Connected to db');
    })



app.listen(3000, () => console.log('Server up and running'));

// My auth.js (router) file
const router = require('express').Router();
const User = require('../model/User');

router.post('/register', async (req, res) => {
    const user = new User({
        name: req.body.name,
        email: req.body.email,
        password: req.body.password
    })
    
        const savedUser = await user.save();
        res.send(savedUser);
    
})

module.exports = router;

// And my User.js (model) file
````const mongoose = require('mongoose');

const userSchema = mongoose.Schema({
    name: {
        type: String,
        required: true,
        min: 6,
        max: 255
    },
    email: {
        type: String,
        required: true,
        min: 6,
        max: 255
    },
    password: {
        type: String,
        required: true,
        min: 6,
        max: 1024
    },
    date: {
        type: Date,
        default: Date.now
    }
})

module.exports = mongoose.model('User', userSchema);

I tried to look up solutions but none seemed to work. Help would be much appreciated! Thanks in advance

共有1个答案

公羊俊德
2023-03-14
router.post('/register', async (req, res) => {
const user = new User({
    name: req.body.name,
    email: req.body.email,
    password: req.body.password
})
    const savedUser = await user.save().catch( e => { console.error(e) 
    res.send(savedUser);

});

尝试使用catch捕获错误

 类似资料:
  • 我已经做了几个小时了,似乎找不到问题所在。 下面是我的数据库模式: 这是我的课程: 这是我的任务类: 因此,我的H2数据库结构如下: 我试图通过Rest控制器给学生添加一个任务(Rest控制器工作正常): 这是我的类: 以下是代码中的日志: 如你所见,任务似乎确实被添加到数据库中——除了它没有:( ☝️ 应该有一个“4,3”(4是任务id,3是学生“编号”)。 哦,当我在做的时候,这是我的类: 我

  • 问题内容: Python新手对csv模块感到有点沮丧。以这种速度,如果我自己编写文件解析器会更容易,但是我想用Pythonic的方式做事情。 我写了一个小python脚本,应该将我的数据保存到CSV文件中。 这是我的代码片段: 文件myfile.csv已成功创建,但为空-但已锁定,因为Python进程仍在使用它。似乎数据已写入内存中的文件,但尚未刷新到磁盘。 由于Python进程在文件上持有锁,因

  • 是否可以更改我没有连接到的数据库的架构?更具体地说,我需要更改模式的所有者(但出于问题的考虑,这并不重要)。

  • 问题内容: 我想为ACL创建一个架构;但是,我在实现它的两种方法之间陷入了困境。 我敢肯定,我不想处理级联权限,因为这会导致后端和站点管理员感到困惑。 我想我也可以只和一个角色一起生活。这样的设置将允许在网站扩展时根据需要添加角色和权限,而不会影响现有角色/规则。 首先,我要规范化数据并使用三个表来表示关系。 查询以确定是否允许某处某个用户的查询如下所示: 然后我意识到我将只有大约20个资源,每个

  • 这里是我的代码,我想在数据库中保存图像url我正在使用laravel我的问题是如何在数据库中保存图像url 公共函数保存(请求$req){if(请求()-

  • 我正在尝试在我的设计表单上添加一个额外的字段,如下所示: 我必须允许额外的字段,所以我创建了一个新的初始值设定项devise_permitted_parameters.rb,如下所示 输出如下: "email"=? LIMIT?[["email","wtgwg@gmail.com "], ["LIMIT",1]]SQL(1.1ms)插入到"用户"("email","encrypted_passwo