Mongoose无法在Namecheap共享托管节点js应用程序上建立与数据库的连接

时间:2019-05-10 12:06:40

标签: node.js mongodb mongoose cpanel shared-hosting

正在执行的代码成功将猫鼬与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共享主机上的数据库连接的方式是什么?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

端口: 27017 3000 443和 80

答案 2 :(得分:-1)

首先在本地或MLAB中使用,如果MLAB也尝试相同的 mongoose.connect(MONGO_URI); 猫鼬连接

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