当前位置: 首页 > 知识库问答 >
问题:

连接到Databse-NodeJS和mongodb时出错

鲜于高明
2023-03-14

我是nodejs和MongoDB的重要成员。尝试连接到数据库时遇到以下错误:

(节点:10124)UnhandledPromiseRejectionWarning:MongoNetworkError:在池上第一次连接[MongoNetworkError:connect Econnn拒绝127.0.0.1:27017]时无法连接到服务器[127.0.0.1:27017].(E:\node js workspace\url-shortner\server\node_modules\mongodb-core\lib\topologies\server.js:562:11)在emitOne(events.js:116:13)在pool.emit(events.js:211:7)在connection。(e:\node js workspace\url-shortner\server\node_modules\mongodb-core\lib\connection\pool.js:316:12)在object.oncewrapper(events.js:317:30)在emitTwoo(events.js:126:13)在connection.emit(events.js:214:7)在socket。(e:\node js workspace\url-shortner\server\node_module\mongodb-core\lib\connection\connection.js:245:50)在object.oncewrapper(events.js:315:30)在emitOne(events.js:116:13)在socket.emit(events.js:211:7)在emitErrorNT(internal/streams/destroy.js:64:8)在_combinedtickcallback(internal/process/next_tick.js:138:11)在这个错误可能是由于抛出一个没有catch块的异步函数内部,或者是由于拒绝了一个未用.catch()处理的承诺。(拒绝ID:1)(节点:10124)[DEP0018]拒绝警告:不推荐未处理得承诺拒绝.将来,未处理的承诺拒绝将以非零退出代码终止node.js进程

我正在尝试建立一个url短。这是密码。

index.js-

const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const mongoURI = "mongodb://localhost/url-shortner";
const connectOptions={
keepAlive: true,
reconnectTries: Number.MAX_VALUE
};
mongoose.connect(mongoURI,connectOptions,(err,db)=>{
if(err) console.log('Error',err);
console.log('Connected to MongoDB');
});
const app = express();
require("./models/UrlShorten");
app.use(bodyParser.json());
require("./routes/urlshorten")(app);
const PORT = 7000;
//Start server on Port 7000
  app.listen(PORT, () => {
console.log(`Server started on port`, PORT);
});

urlshorten.js-

const mongoose = require("mongoose");
const validUrl = require("valid-url");
const UrlShorten = mongoose.model("UrlShorten");
const shortid = require("shortid");
const errorUrl='http://localhost/error';
module.exports = app => {
app.get("/api/item/:code", async (req, res) => {
const urlCode = req.params.code;
const item = await UrlShorten.findOne({ urlCode: urlCode });
if (item) {
  return res.redirect(item.originalUrl);
 } else {
   return res.redirect(errorUrl);
 }
});
 app.post("/api/item", async (req, res) => {
 const { originalUrl, shortBaseUrl } = req.body;
 if (validUrl.isUri(shortBaseUrl)) {
 } else {
   return res
     .status(401)
     .json(
       "Invalid Base Url"
     );
 }
 const urlCode = shortid.generate();
 const updatedAt = new Date();
 if (validUrl.isUri(originalUrl)) {
   try {
     const item = await UrlShorten.findOne({ originalUrl: originalUrl });
     if (item) {
       res.status(200).json(item);
     } else {
       shortUrl = shortBaseUrl + "/" + urlCode;
      // console.log("Shorturl: "+shortUrl);
        const item = new UrlShorten({
         originalUrl,
         shortUrl,
         urlCode,
         updatedAt
       });
       await item.save();
       res.status(200).json(item);
     }
    } catch (err) {
    res.status(401).json("Invalid User Id");
   }
  } else {
   return res
     .status(401)
     .json(
       "Invalid Original Url"
     );
 }
});
};

这是架构:

Schema({
originalUrl: String,
urlCode: String,
shortUrl: String,
createdAt: { type: Date, default: Date.now },
updatedAt: { type: Date, default: Date.now }

});

谢谢.

共有1个答案

潘弘壮
2023-03-14

您还没有启动mongodb服务,

使用命令sudo mongod启动它,然后尝试启动服务器。

 类似资料:
  • 下面是/etc/kafka/connect-MongoDB-source.properties中的MongoDB配置 但是低于误差 以独立模式运行连接器。 我在debezium-debezium-连接器-mongob-1.0.0/debezium-connector-mongodb-1.0.0.Final.jar 类路径的设置如下 使用插件路径,我看到它能够注册和加载所有必需的插件。 但最后还是同

  • mongo“mongoDB+srv://sandbox-hoj54.mongodb.net/test”--authenticationdatabase admin--用户名M001-student--密码m001-mongodb-basics 2020-06-19T14:18:02.553+0530 E QUERY[js]未捕获异常:语法错误:意外标记:字符串文字:@(shell):1:6

  • 所以我现在正在编写一个web应用程序,我需要数据库,所以我决定使用mongodb和Mongoose。到目前为止,我在localhost上测试了所有的内容,它都起作用了,但我想把数据移到服务器上。我听说过Atlas,自己注册并“上传”了数据。 现在我想通过Node.js应用程序连接到集群。 我在连接您的应用程序点得到了mongodb Atlas站点的字符串 然后我交换了我的密码。 这也没用。 这是错

  • 问题内容: 因此,我目前正在使用Web应用程序,并且需要数据库,因此我决定使用mongodb和mongoose。到目前为止,我已经在localhost上测试了所有内容,并且一切正常,但是我想将数据移至服务器。我听说过Atlas,并进行了注册并“上传”了数据。 现在,我想通过node.js应用程序连接到集群。 我在 连接您的应用程序* 点获得了mongodb Atlas网站的字符串 * 然后我交换了

  • 在nodeJS应用程序中,我希望通过其UNIX套接字。我用这个包裹https://mongodb.github.io/node-mongodb-native/?jmp=docs(版本3.1.6),通过这种方式: 此处的文档中引用了URI:https://docs.mongodb.com/manual/reference/connection-string/#unix-域套接字。但在我的例子中,它失

  • 问题内容: 我知道我正在做一些非常愚蠢和愚蠢的事情,但是我希望有人可以帮助我建立从Mac上的node.js到mongodb的基本数据库连接。 我已经使用自制软件安装了mongodb,看起来效果很好。我已经以本地登录用户身份启动了服务器(mongod),并打开了第二个终端,并确认可以使用mongo连接到该服务器。当我运行mongo时,出现消息“正在连接:localhost:27017 / test”