mongo db node.js与';db';未定义

mongo db node.js与';db';未定义,node.js,reactjs,mongodb,Node.js,Reactjs,Mongodb,我是一个新手,在创建了一个server.js文件并运行下面输入的nodemon server.js文件之后,我观看了一段yt视频 var express = require("express"); var app = express(); var formidable = require("express-formidable"); app.use(formidable()); var mongodb = require("mongodb&q

我是一个新手,在创建了一个server.js文件并运行下面输入的nodemon server.js文件之后,我观看了一段yt视频

var express = require("express");
var app = express();

var formidable = require("express-formidable");
app.use(formidable());

var mongodb = require("mongodb");
var mongoClient = mongodb.MongoClient;
var ObjectId = mongodb.ObjectId;

var http = require("http").createServer(app);
var bcrypt = require("bcrypt");
var fileSystem = require("fs");

var jwt = require("jsonwebtoken");
var accessTokenSecret = "myAccessTokenSecret1";

app.use("/public", express.static(__dirname + "/public"));
app.set("view engine", "ejs");

var socketIO = require("socket.io")(http);
var socketID = "";
var users = [];

var mainURL = "http://localhost:3000";

socketIO.on("connection", function (socket) {
  console.log("User connected", socket.id);
  socketID = socket.id;
});

http.listen(3000, function () {
  console.log("Server started.");
  mongoClient.connect("mongodb://localhost:27017", function (error, client) {
    var database = client.db("Social_De_Test");
    console.log("Database connected.");
    app.get("/signup", function (request, result) {
      result.render("signup");
    });
  });
});
,我得到一个错误

[nodemon] 2.0.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json  
[nodemon] starting `node server.js`
Server started.
(node:5776) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the 
MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
F:\Project\Workspace\heroku\node_modules\mongodb\lib\utils.js:668
          throw error;
          ^

TypeError: Cannot read property 'db' of undefined
    at F:\Project\Workspace\heroku\server.js:35:27
    at F:\Project\Workspace\heroku\node_modules\mongodb\lib\utils.js:665:9
    at F:\Project\Workspace\heroku\node_modules\mongodb\lib\mongo_client.js:224:23
    at connectCallback (F:\Project\Workspace\heroku\node_modules\mongodb\lib\operations\connect.js:366:5)
    at F:\Project\Workspace\heroku\node_modules\mongodb\lib\operations\connect.js:433:14
    at Server.<anonymous> (F:\Project\Workspace\heroku\node_modules\mongodb\lib\topologies\server.js:230:11)
    at Object.onceWrapper (events.js:421:26)
    at Server.emit (events.js:314:20)
    at Pool.<anonymous> (F:\Project\Workspace\heroku\node_modules\mongodb\lib\core\topologies\server.js:436:21)
    at Pool.emit (events.js:314:20)
[nodemon] app crashed - waiting for file changes before starting...
[nodemon]2.0.4
[nodemon]要随时重新启动,请输入'rs'`
[nodemon]正在监视路径:**
[nodemon]观看扩展:js、mjs、json
[nodemon]正在启动`node server.js`
服务器启动。
(节点:5776)弃用警告:当前服务器发现和监视引擎已弃用,将在未来版本中删除。要使用新的服务器发现和监视引擎,请将选项{useUnifiedTopology:true}传递给
MongoClient构造函数。
(使用`node--trace deprecation…`显示警告的创建位置)
F:\Project\Workspace\heroku\node\u modules\mongodb\lib\utils.js:668
投掷误差;
^
TypeError:无法读取未定义的属性“db”
在F:\Project\Workspace\heroku\server.js:35:27
位于F:\Project\Workspace\heroku\node\u modules\mongodb\lib\utils.js:665:9
位于F:\Project\Workspace\heroku\node\u modules\mongodb\lib\mongo\u client.js:224:23
在connectCallback(F:\Project\Workspace\heroku\node\u modules\mongodb\lib\operations\connect.js:366:5)
位于F:\Project\Workspace\heroku\node\u modules\mongodb\lib\operations\connect.js:433:14
在服务器上。(F:\Project\Workspace\heroku\node\u modules\mongodb\lib\topologies\server.js:230:11)
在Object.onceWrapper(events.js:421:26)
在Server.emit上(events.js:314:20)
在游泳池。(F:\Project\Workspace\heroku\node\u modules\mongodb\lib\core\topologies\server.js:436:21)
在Pool.emit(events.js:314:20)
[nodemon]应用程序崩溃-正在等待文件更改,然后再启动。。。
它的填充看起来像你的文章主要是代码;请添加更多的细节。填充看起来你的文章主要是代码;请添加更多的细节。填充看起来你的文章主要是代码;请添加更多的细节。填充看起来你的文章主要是代码;请添加更多的细节。填充看起来你的文章主要是代码;请添加更多的细节。填充看起来你的文章主要是代码;请添加更多的细节。填充看起来你的文章主要是代码;请添加更多的细节。填充看起来你的文章主要是代码;请添加更多的细节。填充看起来你的文章主要是代码;请添加更多的细节。填充看起来你的文章主要是代码;请添加更多的细节。填充看起来你的文章主要是代码;请添加更多详细信息。

似乎是这一行:

var database = client.db("Social_De_Test");
应将客户端替换为mongoClient:

var database = mongoClient.db("Social_De_Test");

您正在给DB打asyn电话。只需确保您已经创建了一个承诺,并在这里附加到DB。我在这里使用mongoose作为ODM,并添加了一个片段,以防您找不到任何帮助

global.mongoose = require('mongoose');

mongoose.Promise = global.Promise;

// Connecting to the database
mongoose
  .connect(dbConfig[envConfig.current_env], {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useFindAndModify : false
  })
  .then(() => {
    console.log('Successfully connected to the database');
  })
  .catch((err) => {
    console.log('Could not connect to the database. Exiting now...', err);
    process.exit();
  });

您的mongoDB是否已在上述url上启动并运行?localhost:27017?在运行行
var database=client.db(“Social_De_Test”)之前,请尝试使用console.log打印错误对象