首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么mongoDB不能保存我的用户(异步/等待问题?)- Express、MongoDB、Oauth

MongoDB不能保存用户的原因可能是由于异步或等待问题导致的。在使用Express、MongoDB和Oauth进行开发时,可能会遇到以下情况:

  1. 异步问题:MongoDB是一个非关系型数据库,它使用异步操作来处理数据的读写。在某些情况下,如果没有正确处理异步操作,可能会导致保存用户数据的过程出现问题。例如,在保存用户数据之前,可能需要等待某些异步操作完成,但如果没有正确处理这些异步操作的返回结果,可能会导致保存用户数据失败。

解决异步问题的方法是使用回调函数、Promise或async/await等异步处理机制来确保在保存用户数据之前,必要的异步操作已经完成。

  1. 等待问题:在使用Oauth进行用户认证时,可能需要等待认证过程完成后再保存用户数据。如果没有正确处理等待过程,可能会导致保存用户数据失败。例如,在用户通过Oauth进行认证后,可能需要等待认证服务器返回认证结果,然后再保存用户数据。

解决等待问题的方法是使用回调函数、Promise或async/await等机制来确保在保存用户数据之前,已经获得了必要的认证结果。

综上所述,要解决MongoDB不能保存用户的问题,需要正确处理异步操作和等待过程。在Express、MongoDB和Oauth的开发中,可以使用回调函数、Promise或async/await等机制来确保在保存用户数据之前,必要的异步操作和等待过程已经完成。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Nodejs学习路线图

那么接下来,大家肯定都会问为什么要是用Nodejs呢? 1.2. 为什么要用Nodejs?...性能和I/O负载:Nodejs非常好解决了IO密集问题,通过异步IO来实现。 连接内存开销:每个Node.js进程可以支持超过12万活跃连接,每个连接消耗大约2K内存。...不需要异步应用:比如系统管理,自行化脚本等,还是Python更顺手,Nodejs异步调用可能会给编程带来一些麻烦。...mongoose 是MongoDB对象模型工具,通过Mongoose框架,可以进行访问MongoDB操作。 mysql 是连接MySQL数据库通信API,可以进行访问MySQL操作。...Web应用一般有2种登陆认证形式:用户名和密码认证登陆,OAuth认证登陆。Passport可以根据应用程序特点,配置不同认证机制。本文将介绍,用户名和密码认证登陆。 ?

6.4K102

Express中对MongoDB数据库进行增删改查

这两天跟着B站Johnny老师学习NodeJs+Express+MongoDB相关知识点,前后跟着做了1小时搞定NodeJs(Express)用户注册、登录和授权、Element UI + NodeJs...使用系统是Windows10系统,采用开发工具是Visual Studio Code,另外还需要在VSCode中安装REST Client插件,用于发送HTTP请求和查看服务端响应信息,类似于PostMan...赋值给产品(赋值不需要异步,因为它只是javascript中一个内存操作,而查询、保存数据都需要和MongoDB连接需要异步) product.title = req.body.title;...赋值给产品(赋值不需要异步,因为它只是javascript中一个内存操作,而查询、保存数据都需要和MongoDB连接需要异步) product.title = req.body.title;...}) 在实际使用VSCode过程中,当使用async集合await调用MongoDB实现异步调用时保存,需要在源代码文件server.js顶部添加如下一行: /* jshint esversion

5.3K10
  • Week14-服务端选型:磨刀不如砍柴功

    Express eggs.js Nest.js 2-2 介绍koa2和express koa2: 基于Node.js平台下一代web框架 express:node平台web框架,koa2基于express...如图显示这个版本是5.0.8,也就是说之前电脑上其实是有redis新安装这个6.0.9并没有用上。...然后,继续查看目录,发现之前安装5.0.8版本,其实在 /usr/local/redis-5.0.8下面,而且不是使用brew安装 因此,又把刚刚安装redis删除: brew...Cookie和Session JWt SSO和OAuth2 4-2 介绍 Session 登录 Cookie做登录校验过程 前端传入用户名密码,传给后端 后端验证成功,返回信息时set-cookie...OAuth2验证 上述SSO是oauth实际案例,其他常见还有微信登录、github登录。即,当涉及到第三方用户登录校验时,都会用到OAuth2.0标准。

    2K30

    三步带你开发一个短链接生成平台

    前段时间在开发【葡萄城社区】公众号时有一个功能是需要用网页授权认证地址生成二维码,但类似像下面这样Url 即便是看也觉得很头疼了https://open.weixin.qq.com/connect/oauth2...为了高效,这使用是node和mongodb,下面我们就来开始动手吧。...下面分别对使用到这三个包简单说明一下: 在这个应用中,我们使用了mongodb,之所以选择它是因为执行高效且低开销,所以执行起来也很高效,不过如果使用其他数据库也是没问题。...这里mongoose就是npm一个包,主要是为程序提供连接mongodb并增删查改功能。...下面附上源码,执行npm install 即可自动安装所有依赖,如果大家有问题,可通过评论区告诉。 源码下载>>

    3.1K30

    MongoDB分片迁移原理与源码(1)

    MongoDB日志复制是异步过程,主节点收到写操作时,先在本地应用写,再写一个日志后,其他节点去拉取日志把写操作应用到本地节点,而Raft是写一个日志并复制到大多数节点,然后主节点再将写应用到本地后反馈给用户...[基于范围分片] 当用户通过mongos访问MongoDB服务进行数据写入时候,会根据分片键、分片策略等将数据路由到某一个分片,写入保存,生成一个个数据块。...MongoDB提供了一个参数去设置是否异步删除:_waitForDelete。迁移一个 chunk 数据以后,是否同步等待数据删除完毕;默认为 false, 由一个单独线程异步删除旧数据。...由于块迁移流程操作不能做到原子性,从在异步流程,如果在上述操作步骤4/5/6/7出现宕机或网络问题问题导致迁移中断,都可能出现问题,导致数据不一致、孤儿文档等问题,这也是本文章主要关注点。...未完,待续 参考文档 MongoDB官方文档 孤儿文档是怎样产生(MongoDB orphaned document) MongoDB疑难解析:为什么升级之后负载升高了?

    1.2K00

    腾讯云快速搭建微信小程序服务

    如果你机器同时安装了其他软件占用80端口,那上面的访问方式就不能使用了,而且 Nginx 都可能启动不了,你需要关闭该软件再重新启动 Nginx。...netstat -ltp | grep 27017 MongoDB 首次启动可能会花费大概 1min 时间,请耐心等待 MongoDB 默认监听 27017 端口等待连接,下面的命令查看当前 27017...添加 MongoDB 用户 登录本地 MongoDB 服务: sudo mongo 登录后,创建一个用户 webapp [?]...创建用户和密码将用于下一步中连接数据库时使用,如果使用不同用户或密码,注意要保存好 安装 Node 模块 实现小程序会话功能,我们需要安装 [connect-mongo] 和 [wafer-node-session...express'); response.end(); }); // 监听端口,等待连接 app.listen(config.serverPort); // 输出服务器启动日志 console.log

    32.4K99

    基于 CentOS 搭建微信小程序服务

    netstat -ltp | grep 27017 MongoDB 首次启动可能会花费大概 1min 时间,请耐心等待 MongoDB 默认监听 27017 端口等待连接,下面的命令查看当前 27017...添加 MongoDB 用户 登录本地 MongoDB 服务: mongo 登录后,创建一个用户 weapp [?]...创建用户和密码将用于下一步中连接数据库时使用,如果使用不同用户或密码,注意要保存好 安装 Node 模块 实现小程序会话功能,我们需要安装 [connect-mongo] 和 [wafer-node-session...实现小程序会话 在工作目录创建配置文件 config.js,用于保存我们服务所用配置[?]...express'); response.end(); }); // 监听端口,等待连接 app.listen(config.serverPort); // 输出服务器启动日志 console.log

    8.5K152

    腾讯云极速配置NodeJS+LNMP运行环境

    国内搜索了很多也没有发现有关LNMP+Nodejs具体部署教程,于是踩了很多坑,终于配出了NodeJS+LNMP+PHPMyAdmin 1.腾讯云服务器 腾讯云服务器地址因为NodeJS异步、非阻塞特性...这里推荐系统是CentOS 7+ (主要是因为CentOS 6使用是Python 2.6,yum各种坑,想升级成Python 2.7坑还多)。...express项目,端口为3000,但是并不能访问到3000端口 需要防火墙忽略3000端口,所以执行以下命令: iptables -I INPUT 4 -p tcp -m state --state...端口) systemctl {start|status|stop} mongod 注意:从MongoDB“赎金事件”中,建议一定要使用db.addUser和db.changeUserPassword更改用户名和密码...六、常见问题 如果重装系统,ssh上去时,出现以下错误,用ssh-keygen -R IP地址 来解决 有时候开启node服务时,提示某个端口被占用。

    2.7K01

    Nuxt + Koa2 + Mongodb 手撸一个网上商城

    2017年跟着教程做了一个全栈商场(vue + express + mongodb),2019年,工作中一直做前端,之前学过都忘了,所以准备用 Nuxt + koa2 + mongodb 重写一次。...sass,反正每次用yarn 装 nodesass 都会有问题,弃坑!...如果组件不是和路由绑定页面组件,原则上是不可以使用异步数据。因为 Nuxt.js 仅仅扩展增强了页面组件 data 方法,使得其可以支持异步数据处理。...mongoose Mongoose:一款为异步工作环境设计 MongoDB 对象建模工具。...mongoose 获取内嵌数组长度,有没有更好办法,或者说是既能返回总数也能进行分页? mongodb也是现学现卖,查询语句写可能不是最优,仅作参考。

    9.4K10

    如何为你移动应用建立RESTful API

    因此,我们可以使用某种数字编码来保护数据,或者也可以使用OAuth 2.0。在这里建议使用OAuth 2.0,因为它提供了双重认证。 然而,OAuth 2.0不能单独保护所有数据。...生产:这个阶段需要从错误、漏洞和系统中任何类型时间延迟中解脱出来。如果系统不能复制相同数量数据,则意味着您必须向下移动到第1阶段,以更改代码并修复问题。...扩展数据库: 您正在使用数据库类型取决于数据。您可能实现了像MySQL这样数据库传统版本,或者您更喜欢像MongoDB这样数据库更可伸缩版本。...MongoDB 它比MySQL数据库更容易扩展。 更容易使用 没有正式模式,也没有必要数据表。 如何为移动应用程序实现RESTful api ?...$npminit 为所有的npm问题选择默认选项。在这一步之后,npm将创建一个包。json文件,该文件跟踪您项目信息。您还可以安装Express,这是Node.jsweb框架。

    61420

    node.js后端+小程序前端+mongoDB(增删改查)

    前言 今天对比了以下node.jsexpress与pythonfastAPI,决定还是出一期关于node.js+mangoDB+小程序小案例吧。...mongoDB express(node.js web框架) mongoose(mongoDB管理器) mongDB优点 灵活数据模型: MongoDB是一个文档型数据库,使用BSON(Binary...社区支持和活跃: MongoDB有一个庞大开源社区,提供了丰富文档、教程和问题解答。这种活跃社区支持使得开发者能够更容易找到解决问题方法。...支持异步编程: Node.js基于事件驱动和非阻塞I/O模型,支持异步编程风格。这使得开发人员能够编写高效、非阻塞代码,从而更好地利用系统资源并提高应用响应能力。...开发人员可以根据需要轻松地扩展应用,满足不断增长用户需求。

    27410

    nodeJS操纵数据库

    ,首先你终端目录得切换到你要 执行文件目录下面去,然后使用node 文件名称执行即可 我们nodejs代码是在一个叫做REPL环境中,执行 REPL JS执行 执行js在浏览器端,是是要依靠浏览器...内容空间中去运行, 我们把启动好node这块内存空间称之为REPL环境 模块化思想 为什么前端需要有模块化 1、解决全局变量名污染问题 2、把相同功能代码放在一个模块(一个js文件中)方便后期维护...步骤: 1、先要创建一个单独路由(js文件),来处理某一类 请求下面的所有用户请求,并且需要导出去 1.1 导入包 express 1.2 创建一个路由对象 const manRouter...写linkhref,scriptsrc写时候,除开静态资源根 路径之外,按照他在服务器上面的路径规则写 mongodb数据库 数据库 保存数据仓库,数据库本质也是一个文件,只是说和普通 文件不太一样...JSON对象形式来存储 MongoDB : 简单,你会js、JSON就能操作 Redis Memcached 数据库作用 1、保存应用程序产生数据(用户注册数据,用户个人信息等等) 2、

    2.5K41

    Express进阶升级

    ,这意味着无论何种类型资源,都使用相同接口方法进行操作 层次化系统: 客户端通常不能直接与存储资源服务器通信,而是通过中间层来实现交互 可缓存特性: 为了提高网络效率,响应应该定义为可缓存或不可缓存...,记录用户信息; 常见会话控制技术有三种: Cookie、Session、Token Cookie Cookie 是什么: Cookie是 HTTP服务器发送到用户浏览器,并保存在本地一小块数据、按照域名划分保存...返回响应:set-cookie:用户=信息 给 浏览器 Cookie,浏览器保存记录Cookie 并在之后每一次请求都会携带这个Cookie,服务器可以获取Cookie,由此区分用户,实现持久会话机制...({ //[可选] 数据库连接配置,Session保存Mongodb中,默认保存至内存 // mongoUrl: 'mongodb://127.0.0.1:27017/bilibili...它可以指代各种类型令牌,包括 JWT、OAuth 令牌等,很久以前写一篇关于JWT详细介绍: 我们可以使用 jsonwebtoken NPM包 来操作 Token: npm i jsonwebtoken

    22910

    服务器小白,是如何将 node+mongodb 项目部署在服务器上并进行性能优化

    BiaoChenXuYing 前言 本文讲解是:做为前端开发人员,对服务器了解还是小白,是如何一步步将 node+mongodb 项目部署在阿里云 centos 7.3 服务器上,并进行性能优化...,比如: vim 模式下,要 按了 i 才能插入内容,输入完之后,要按 shift 加 :wq 才能保存退出。...刷新出现 404 问题,可以看下这篇文章 react,vue等部署单页面项目时,访问刷新出现404问题 3.5 上传项目代码,或者用码云、 gihub 来拉取你代码到服务器上 是创建了码云账号来管理项目代码...3.6 启动 express 服务 启动 express 服务,用了 pm2, 可以永久运行在服务器上,且不会一报错 express 服务就挂了,而且运行中还可以进行其他操作。...基于 node + express + mongodb blog-node 项目文档说明 4. 服务器小白,是如何将node+mongodb项目部署在服务器上并进行性能优化

    1.6K22

    搭建微信小程序教程:基于CentOS 7.6教程

    好了就已经完成输入并且保存了。 添加Server源码 在工作目录创建app.js,使用Express.js在监听8765端口,可参考下面的示例。...重启命令: # nginx -s reload 配置Nginx反向代理 外网用户访问服务器Web服务器有Nginx提供,Nginx需要配置反向代理才能使得Web服务转发到本地Node服务。...安装数据库 MangoDB # yum install mongodb-server mongodb -y 安装结束后,查看版本 # mangod --version 添加MangoDB用户 ##略...: 'weapp-dev', mongoDb: 'weapp' }; 编辑app.js, 添加会话逻辑 // 引用 express 来支持 HTTP Server 实现 const express...'); response.end(); }); // 监听端口,等待连接 app.listen(config.serverPort); // 输出服务器启动日志 console.log(`Server

    3.1K91

    是如何成功搭建 express+mongodb 简洁博客网站后端

    效果请看 http://biaochenxuying.cn/main.html 项目详情请看这篇文章: 基于 node + express + mongodb blog-node 项目文档说明 1....点赞用户 like_users 那里应该只保存用户 id ,这个后面修改一下。...管理一级和三级评论是设置前台能不能展示,默认是展示,如果管理员看了,是条垃圾评论就 设置为 -1 或者 -2 ,进行隐藏,前台就不会展现了。 7....: 1. react + node + express + ant + mongodb 简洁兼时尚博客网站 2. react + Ant Design + 支持 markdown blog-react...基于 node + express + mongodb blog-node 项目文档说明 4. 服务器小白,是如何将node+mongodb项目部署在服务器上并进行性能优化 9.

    95630

    如何将node+mongodb项目部署在腾讯云服务器,并进行性能优化

    ,比如: vim 模式下,要 按了 i 才能插入内容,输入完之后,要按 shift 加 :wq 才能保存退出。...", db: "admin" }] }) 切换到要使用数据库,如 taodb 数据库,创建这个数据库管理员帐号 use taodb db.createUser({ user: "用户名", pwd:...还有 防火墙 这一关呢,如果防火墙没有关闭或者相关端口没有开放,也是不能用公网 IP 进行访问网站内容。...至于为什么要写这样配置: try_files $uri $uri/ @router; location @router{ rewrite ^.*$ /index.html last;...3.6 启动 express 服务 启动 express 服务,用了 pm2, 可以永久运行在服务器上,且不会一报错 express 服务就挂了,而且运行中还可以进行其他操作。

    8.8K93

    Meteor:快到飞起来全栈JavaScript开发平台

    但在筹备过程中,和孵化器其他伙伴聊天时,发现大家都有一个共同问题,就是开发效率不高,常常需要做很多重复性工作。...Meteor 为什么为什么说使用 Meteor 开发会比较快。是哪些特性成就了Meteor 快? 1....例如在有的开发平台中,前端使用 AngularJS,后端使用 Express,虽然均使用 JS 开发,但代码完全无法复用。 Meteor 中前后端大量代码可以同时使用。...前后端数据同步采用异步方式 用户在客户端写入新数据后,不需要等待服务器端数据库写入结果,只要数据成功保存在 miniMongo,用户就可以得到反馈,Meteor负责在后台自动向服务器端发送数据,执行同步操作...存在,用户体验顺畅感如同本地应用。

    2.3K10
    领券