Mongoose 没有与 Namecheap 共享主机节点 js 应用上的数据库建立连接

Posted

技术标签:

【中文标题】Mongoose 没有与 Namecheap 共享主机节点 js 应用上的数据库建立连接【英文标题】:Mongoose does not establish the connection with the database on Namecheap shared hosting node js application 【发布时间】:2019-09-28 08:26:54 【问题描述】:

流动的代码成功地将 mongoose 与 localhost 和 Heroku 上的 mlab 数据库连接起来。但它不适用于 Namecheap 节点 js 服务器。

 const express = require("express");

const mongoose = require("mongoose");
const port = parseInt(process.env.PORT, 10) || 3000;

const server = express();

mongoose.connect("mongodb://@ds213645.mlab.com:13645/techblog", 
  useNewUrlParser: true,
  auth: 
    user: "user",
    password: "pass"
  
);

const Schema = mongoose.Schema;

const userSchema = new Schema(
  
    name: String,
    email: String
  ,
   timestamps: true 
);

const User = mongoose.model("User", userSchema);

server.get("/test", async (req, res) => 
  const user = new User( name: "SomeName", email: "your@email.com" );

  const userData = await user.save();

  res.send(userData);
);

server.get("/", async (req, res) => 
  res.send("working");
);

server.listen(port, err => 
  if (err) throw err;
  console.log(`> Ready on $port`);
);

当我点击 root('/') 路由时,它在 Namecheap 服务器上运行良好,但是当我点击 test('test') 路由时,它会在很长一段时间后响应“从应用程序收到不完整的响应”。那么mongoose和Namecheap共享主机上的数据库有什么连接方式呢?

【问题讨论】:

永远不要分享您的密码 你能打印userData吗 @mehta-rohan 是的,在本地主机中是可能的 Namecheap 中一定有一些出站请求配置需要检查。 【参考方案1】:

问题已解决。 问题是 Namecheap。 Namecheap 阻止了端口 13645 上的传出请求。与他们联系后,他们在端口 13645 上打开了传出请求

【讨论】:

谢谢,我遇到了 MongoDB Atlas 的类似问题。【参考方案2】:

联系 namecheap 支持并要求他们打开下面的端口

端口: 27017 3000 443 和 80

【讨论】:

【参考方案3】:

首先在本地或 MLAB 中使用,如果是 MLAB 尝试相同 mongoose.connect(MONGO_URI); mongoose.connection

如果在本地使用 MongoDB,请尝试从 go 到该位置运行 mongo 服务器 C:\Program Files\MongoDB\Server\4.0\bin 并运行 mongo 然后运行 ​​Mongod 然后尝试运行项目enter image description here "//"名称用户和密码 : MustName_user:password //@ds213645.mlab.com:13645/techblog",

【讨论】:

以上是关于Mongoose 没有与 Namecheap 共享主机节点 js 应用上的数据库建立连接的主要内容,如果未能解决你的问题,请参考以下文章

在Namecheap上为共享IP SiteGround网站添加子域

与 mongoose/node.js 共享数据库连接参数的最佳方式

与 mongoose/node.js 共享数据库连接参数的最佳方式

将 Namecheap 域添加到 AWS Elastic Beanstalk

在根级别使用namecheap域配置heroku hobby dyno

mongoose.js 中模式部分的共享和重用策略