使用带有错误传递选项 useUnifiedTopology: true 的 nodejs 到 MongoClient 构造函数
Posted
技术标签:
【中文标题】使用带有错误传递选项 useUnifiedTopology: true 的 nodejs 到 MongoClient 构造函数【英文标题】:Using nodejs with error pass option useUnifiedTopology: true to the MongoClient constructor使用带有错误传递选项 useUnifiedTopology: true 的 nodejs 到 MongoClient 构造函数 【发布时间】:2021-05-05 13:47:40 【问题描述】:我正在使用 Nodejs 和 Mongodb 在 android 中创建一个聊天应用程序。
我收到此错误:
(node:49148) DeprecationWarning:当前的服务器发现和监控引擎已被弃用,并将在未来的版本中删除。使用新的 Server Discover 和 Mo nitoring 引擎,将选项 useUnifiedTopology: true 传递给 MongoClient 构造函数。
这是js文件的代码
const SocketServer = require('websocket').server
const http = require('http')
const express = require('express')
const app = express()
const mongoClient = require('mongodb').MongoClient
const server = http.createServer((req, res) => )
const url = "mongodb://localhost:27017"
server.listen(50000, ()=>
console.log("Listening on port 50000...")
)
app.listen(60000, () =>
console.log("Listening on port 60000...")
)
app.use(express.json())
mongoClient.connect(url, (err, db) =>
if (err)
console.log("Error while connecting mongo client")
else
const myDb = db.db('myDb')
const collection = myDb.collection('myTable')
app.post('/signup', (req, res) =>
const newUser =
name: req.body.name,
email: req.body.email,
password: req.body.password
const query = email: newUser.email
collection.findOne(query, (err, result) =>
if (result == null)
collection.insertOne(newUser, (err, result) =>
res.status(200).send()
)
else
res.status(400).send()
)
)
app.post('/login', (req, res) =>
const query =
email: req.body.email,
password: req.body.password
collection.findOne(query, (err, result) =>
if (result != null)
const objToSend =
name: result.name,
email: result.email
res.status(200).send(JSON.stringify(objToSend))
else
res.status(404).send()
)
)
)
wsServer = new SocketServer(httpServer:server)
const connections = []
wsServer.on('request', (req) =>
const connection = req.accept()
console.log('new connection')
connections.push(connection)
connection.on('message', (mes) =>
connections.forEach(element =>
if (element != connection)
element.sendUTF(mes.utf8Data)
)
)
connection.on('close', (resCode, des) =>
console.log('connection closed')
connections.splice(connections.indexOf(connection), 1)
)
)
【问题讨论】:
【参考方案1】:这只是 mongodb 包显示的警告,以添加 useUnifiedTopology: true 选项来连接 mongodb 功能。这个问题已经解决了请点击下面的链接
Warning on Connecting to MongoDB with a Node server
【讨论】:
以上是关于使用带有错误传递选项 useUnifiedTopology: true 的 nodejs 到 MongoClient 构造函数的主要内容,如果未能解决你的问题,请参考以下文章
如何通过黄瓜选项通过带有黄瓜功能文件的命令行传递应用程序 URL?
[Catel]如何将带有构造函数参数的 ViewModel 传递给 TabService 扩展方法?
使用带有无法识别的长选项的“getopt_long”时出现分段错误
错误:当传递带有修改行的 DataRow 集合时,更新需要有效的 UpdateCommand
使用带有 ViewPager 的选项卡时出现错误“Java.lang.IllegalStateException Activity 已被破坏”