MongoDB 无法连接到服务器

MongoDB can't connect to Server

编辑:我尝试了几个不同的端口,终止了端口上的任务并再次尝试,它不起作用。

今天我开始了关于 MERN 堆栈的教程,但我无法连接到服务器。 使用 npm 运行 服务器时出现以下错误: Error Message

我安装了推荐版本的node,用npm i安装了express、mongoose、body-parser、concurrently和nodemon。 我按照教程的每一步操作,但无法正常工作。

这些是我的文件:

server.js

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');


const app = express();

// Bodyparser Middleware
app.use(bodyParser.json());

// DB Config
const db = require('./config/keys').mongoURI;

// Connect to Mongo
mongoose
  .connect(db, {useNewUrlParser: true}) // Adding new mongo url parser
  .then(() => console.log('MongoDB Connected...'))
  .catch(err => console.log(err));

const port = process.env.PORT || 5000;

app.listen(port, () => console.log(`Server started on port ${port}`));

package.json

{
  "name": "mern_shopping_list",
  "version": "1.0.0",
  "description": "Shopping list built with the MERN stack",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "server": "nodemon server.js"
  },
  "author": "Mario Hess",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.18.3",
    "concurrently": "^4.0.1",
    "express": "^4.16.3",
    "mongoose": "^5.2.17"
  },
  "devDependencies": {
    "nodemon": "^1.18.4"
  }
}

keys.js(是的,我编辑了我的名字和密码!)

module.exports = {
    mongoURI:'mongodb://<MYNAME>:<MYPASSWORD>@ds115193.mlab.com:15193/servasdu'
}

错误说,另一个任务当前正在使用端口 5000。那么,解决方法很简单,将端口更改为其他端口。例如:

const port = process.env.PORT || 5050;

这是一个备选方案。如果您使用 Windows OS,试试这个:

在您的命令行中:

netstat -aon | findstr :5000

你会得到这样的东西:

然后:

taskkill /pid xxxxx /f

右边的xxxxx需要换成process IDs。大多数时候,排在第一位的 pid 就是我们需要的。

这样就终止了当前占用5000端口的任务

试试这个:

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');

const app = express();

// Bodyparser Middleware
app.use(bodyParser.json());

// DB Config
// const db = require('./config/keys').mongoURI;
const db = 'mongodb://mario:M010101@ds115963.mlab.com:15963/stack2709';
// Connect to Mongo
mongoose
  .connect(
    db,
    { useNewUrlParser: true }
  ) // Adding new mongo url parser
  .then(() => console.log('MongoDB Connected...'))
  .catch(err => console.log(err));

const port = process.env.PORT || 5000;

app.listen(port, () => console.log(`Server started on port ${port}`));

我已经为您制作了这个数据库。正如你在这里看到的,一切都很好。

希望我的回答对您有所帮助!