【问题标题】: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)
    })

})

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    这只是 mongodb 包显示的警告,以添加 { useUnifiedTopology: true } 选项来连接 mongodb 功能。这个问题已经解决了请点击下面的链接

    Warning on Connecting to MongoDB with a Node server

    【讨论】:

      猜你喜欢
      • 2020-07-30
      • 2021-04-04
      • 2020-07-01
      • 1970-01-01
      • 2015-01-13
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多