通过Node.js通过SSH用户名/密码连接MongoDB可以使用ssh2和mongoose模块来实现。
首先,我们需要安装ssh2和mongoose模块:
npm install ssh2 mongoose
然后,我们可以编写以下代码来连接MongoDB:
const mongoose = require('mongoose');
const { Client } = require('ssh2');
// SSH连接配置
const sshConfig = {
host: 'SSH服务器地址',
port: 'SSH端口',
username: 'SSH用户名',
password: 'SSH密码'
};
// MongoDB连接配置
const mongoConfig = {
host: 'MongoDB服务器地址',
port: 'MongoDB端口',
username: 'MongoDB用户名',
password: 'MongoDB密码',
database: 'MongoDB数据库名'
};
// 创建SSH连接
const sshClient = new Client();
sshClient.on('ready', () => {
console.log('SSH连接已建立');
// 创建MongoDB连接
mongoose.connect(`mongodb://${mongoConfig.host}:${mongoConfig.port}/${mongoConfig.database}`, {
useNewUrlParser: true,
useUnifiedTopology: true,
user: mongoConfig.username,
pass: mongoConfig.password,
authSource: 'admin',
ssh: {
host: sshConfig.host,
port: sshConfig.port,
username: sshConfig.username,
password: sshConfig.password
}
})
.then(() => {
console.log('MongoDB连接已建立');
// 在这里可以进行数据库操作
})
.catch(err => {
console.error('MongoDB连接失败', err);
});
});
sshClient.on('error', err => {
console.error('SSH连接失败', err);
});
sshClient.connect(sshConfig);
// 在这里可以进行其他操作,例如执行命令等
// 当不再需要连接时,可以关闭SSH连接和MongoDB连接
// sshClient.end();
// mongoose.disconnect();
上述代码中,我们首先创建了一个SSH连接,然后在SSH连接成功后创建了一个MongoDB连接。在MongoDB连接成功后,我们可以在then
回调函数中进行数据库操作。
需要注意的是,SSH连接和MongoDB连接都是异步的,因此我们需要使用then
和catch
方法来处理连接成功和失败的情况。
此外,为了确保连接的安全性,建议使用SSH密钥对进行身份验证,而不是使用用户名和密码。另外,还可以根据具体需求对代码进行进一步的优化和错误处理。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云数据库MongoDB版。
领取专属 10元无门槛券
手把手带您无忧上云