node.js - 这个错误是因为代码还是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.
解决方案
你得到的错误,
[MongoNetworkError: getaddrinfo ENOTFOUND localhot localhot:27017]
有一个很明显的错字——你可能的意思是localhost
,不是localhot
。
推荐阅读
- ajax - 使用 HTML 文本框搜索数据表列
- c++ - 如何在模板中获取变量的类型?
- go - 如何为 Bitbucket Pipelines 的自定义基础映像配置缓存
- vba - 从 Word 中的字符中删除粗体格式
- ios - Swift 5:Socket IO 集成和发送数据
- flutter - 在颤动渲染之前压缩或调整图像大小
- android - 我正在尝试将数据从我的颤振应用程序保存到谷歌表格,但我得到一个格式异常
- angular - 如何重置为默认值 bsDateRangePicker
- android - 在锁屏android上显示活动
- python - 为什么模型在管理员 Django 中有父类名