user8583769
user8583769

Reputation:

is this error is becuse of the code or the mongodb

i was working with a node process but when i run the project i got these error.

i am using windows i checked whether mongodb is up and running through 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.

Upvotes: 0

Views: 45

Answers (2)

n00dle
n00dle

Reputation: 6043

The error says that Node can't connect to the host localhot. You've got a typo in the hostname, it should be localhost

failed to connect to server [localhot:27017]

Upvotes: 0

AKX
AKX

Reputation: 169022

The error you're getting,

[MongoNetworkError: getaddrinfo ENOTFOUND localhot localhot:27017]

has a pretty clear typo – you probably mean localhost, not localhot.

Upvotes: 1

Related Questions