首页 > 解决方案 > 这个错误是因为代码还是mongodb

问题描述

我正在使用节点进程,但是当我运行项目时出现这些错误。

我正在使用 Windows 我检查了 mongodb 是否已启动并通过 robo3T 运行

var express = require("express");
var app = express();
var bodyParser = require("body-parser");
var mongoose = require("mongoose");
var Vechicle = require("./app/models/vehicle");

//configuering app for bodyparser
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

//setting up listening port
var port = process.env.PORT || 3000;

//connnect to db
mongoose.connect(
  "mongodb://localhot:27017/mydb",
  { useNewUrlParser: true },
);

//api route
var router = express.Router();

//for prefixing /api route
app.use("/api", router);

//middeleware
router.use(function(req, res, next) {
  console.log("middle ware is working");
  next();
});

//test route
router.get("/", function(req, res) {
  res.json({ message: "Welcome to my world" });
});

router
  .route("/vehicle")
  .post(function(req, res) {
    var vehicle = new Vechicle();
    vehicle.make = req.body.make;
    vehicle.model = req.body.model;
    vehicle.color = req.body.color;

    vehicle.save(function(err) {
      if (err) {
        res.send(err);
      }
      res.json({ message: "no error occured" });
    });
  })

  .get(function(req, res) {
    Vechicle.find(function(err, vehicle) {
      if (err) {
        res.send(err);
      }
      res.json(vehicle);
    });
  });

router.route("/vehicle/:vehicle_id").get(function(req, res) {
  Vechicle.findById(req.param.vehicle_id, function(err, Vechicle) {
    if (err) {
      res.send(err);
    }
    res.json(vehicle);
  });
});

router.route("/vehicle/make/:make").get(function(req, res) {
  Vechicle.find({ make: req.param.make }, function(err, Vechicle) {
    if (err) {
      res.send(err);
    }
    res.json(vehicle);
  });
});

router.route("/vehicle/make/:color").get(function(req, res) {
  Vechicle.find({ color: req.param.color }, function(err, Vechicle) {
    if (err) {
      res.send(err);
    }
    res.json(vehicle);
  });
});

//server connecting
app.listen(port);
console.log("server running on port" + port);

server running on port3000
(node:2508) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhot:27017] on first connect [MongoNetworkError: getaddrinfo ENOTFOUND localhot localhot:27017]
    at Pool.<anonymous> (F:\Node_Rest_Api\Helloapi\node_modules\mongodb-core\lib\topologies\server.js:431:11)
    at Pool.emit (events.js:198:13)
    at connect (F:\Node_Rest_Api\Helloapi\node_modules\mongodb-core\lib\connection\pool.js:557:14)
    at makeConnection (F:\Node_Rest_Api\Helloapi\node_modules\mongodb-core\lib\connection\connect.js:39:11)
    at callback (F:\Node_Rest_Api\Helloapi\node_modules\mongodb-core\lib\connection\connect.js:261:5)
    at Socket.err (F:\Node_Rest_Api\Helloapi\node_modules\mongodb-core\lib\connection\connect.js:286:7)
    at Object.onceWrapper (events.js:286:20)
    at Socket.emit (events.js:198:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
(node:2508) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:2508) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

标签: node.jsmongodb

解决方案


你得到的错误,

[MongoNetworkError: getaddrinfo ENOTFOUND localhot localhot:27017]

有一个很明显的错字——你可能的意思是localhost,不是localhot


推荐阅读