我有一台使用SSH连接的远程计算机,我在其上安装了mongoDB,并且希望远程使用它,如何使用nodejs和mongoDB罗盘连接到它?本地主机是IP吗?
const db = "mongodb://what do I write here?";
const connectDB = async () => {
try {
await mongoose.connect(db, { useNewUrlParser: true, useCreateIndex: true });
console.log("MongoDB Connected...");
} catch (err) {
console.error(err.message);
process.exit(1);
}
};
connectDB();
答案 0 :(得分:1)
mongoose.connect('mongodb://username:password@host:port/database')
现在使用host
,您可以使用任何主机名或IP吗?
答案 1 :(得分:1)
登录到您的计算机,打开位于/etc/mongod.conf
的mongodb配置文件,并将bindIp
字段更改为您的计算机ip地址(与您用于SSH到计算机的IP地址相同) ,然后重新启动mongodb服务器。
使用任何一个编辑器打开/etc/mongod.conf
文件,如果您运行的是台式机版本,则可以使用gedit
实用工具
sudo gedit /etc/mongod.conf
如果您正在运行服务器版本,则可以使用vi editor命令
sudo vi /etc/mongod.conf
文件应包含以下类型的内容:
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 127.0.0.1 // enter your ip address here
port: 27017
setParameter:
enableLocalhostAuthBypass: false
更改bindIp
后,必须使用以下命令重新启动mongodb
sudo service mongod restart
现在,您将可以使用用于SSH到系统的相同IP地址连接到mongodb服务器。
mongoose.connect('mongodb://<machine_ip_address>:27017/<database_name>')
答案 2 :(得分:1)
首先尝试执行此操作:mongoose.connect('mongodb://localhost:27017/database')
mongoose.connect('mongodb://<machine_ip_address>:27017/<database_name>')
mongodb:// [用户名:密码@] host1 [:port1] [,... hostN [:portN]] [/ [数据库] [?选项]]
检查https://docs.mongodb.com/manual/reference/connection-string/
答案 3 :(得分:1)
尝试一下:
mongoose.connect("mongodb://localhost/<database-name>", { useNewUrlParser: true });
const db = mongoose.connection
db.on('error', (error) => console.error(error));
db.once('open', () => console.log('Connected to Database'));
确保运行MongoDB
mongod --config /usr/local/etc/mongod.conf