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