node.js - MongoDB findOne 在服务器重启后返回 null
问题描述
第一次在这里发布问题。我每秒有多个 post 请求进入 nodejs 服务器,具有不同的 ID 作为字符串来确定它们来自谁。它在大多数情况下都按预期工作,但是在重新启动服务器以推送更新时,它始终失败。
db.findOne({ID: req.body.ID})
.then(function(data){
if(data) // goes on and does things with the data
else {
db.insertOne(req.body, () => {
resolve(console.log("New user created"))
})
}
}) //a few other then blocks and a catch block that I don't think are relevant
我对所有这些东西都很陌生,但除了服务器重新启动之外,它似乎在大多数情况下都按照我的意图工作。它会在每次重新启动时为同一个用户创建多个新条目,有时会在它开始在 findOne 请求上返回有效值之前 3 个或更多
我尝试对其他值进行更多 findOne 检查,但在服务器重新启动后它们都返回 null。
这是一个运行 nodejs 的 Heroku 服务器,使用 express 和 mongodb 作为服务器打开与 Mongodb 的连接的唯一包
dotenv.config()
const mongodb = require('mongodb')
mongodb.connect(process.env.CONNECTIONSTRING, {useNewUrlParser: true, useUnifiedTopology: true}, function(err, client){
module.exports = client.db().collection('userdata')
const app = require("./app")
app.listen(process.env.PORT)
})
我在“db”中包含了集合名称,因为我只使用一个集合。
编辑:我无法重新创建只有一个用户发送帖子请求的问题,它只发生在多个用户发送帖子请求并且节点 js 服务器正在重新启动时
解决方案
推荐阅读
- c# - Buy X Pay for Y 算法
- perl - 我正在尝试通过使用字符串 MNPPORTIN,00:11:16 和常规 exp 和 grep 函数从数组中获取匹配的元素
- vb.net - Visual Basic - 自动化循环
- sparql - 优化 SPARQL 查询
- excel - 在 Excel 中对多行进行排序以将空列向右移动
- android - 设计跨平台应用程序的最佳方式
- python - 将 Python 脚本的输出链接到 C++ 程序的输入
- c - C语言推箱子游戏加载器的分段错误
- postgresql - 通过触发器或复制或外部数据包装器将数据从多个数据库插入到远程数据库表中
- javascript - 有没有办法可以在 .js 文件扩展名中运行 PHP 代码?