MongoDB 连接错误处理:解决 MongoNotConnectedError 报错
const { MongoClient } = require('mongodb'); async function aa() { const { default: fetch } = await import('node-fetch'); setInterval(async () => { try { // 连接 MongoDB 数据库 const client = await MongoClient.connect('mongodb://127.0.0.1:27017'); const db = client.db('waitingToJoinGroup');
// 换取 AccessToken
const tokenResponse = await fetch('https://lowcode-0gtbzdgf5319e5ba.ap-shanghai.tcb-api.tencentcloudapi.com/auth/v1/token/clientCredential', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Basic ${Buffer.from('AKIDFLDrIVdZGj3B5ax76tW1JOM8jCNPFtKh:KRL9lBf3HIBuWwBD7tVwAKOHvJTQFqDM').toString('base64')}`
},
body: JSON.stringify({
grant_type: 'client_credentials',
})
});
const { access_token } = await tokenResponse.json();
// 构造查询字符串
const queryString = '$filter=code eq '待处理'&$orderby=createdAt asc';
const queryResponse = await fetch(`https://lowcode-0gtbzdgf5319e5ba.ap-shanghai.tcb-api.tencentcloudapi.com/weda/odata/v1/prod/xhsjq_zhcs_eu9byud?${queryString}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${access_token}`
}
});
const responseData = await queryResponse.json();
console.log(JSON.stringify(responseData));
if (responseData.value && responseData.value.length > 0) {
const arr = [];
for (const item of responseData.value) {
const upload = '未上传';
const { _id, sessionId, createdAt, code, password } = item;
const createdDate = formatDate(createdAt);
// 检查_id是否存在于数据库中
const existingData = await db.collection('sessionId').findOne({ _id });
if (!existingData) {
// 插入新数据
await db.collection('sessionId').insertOne({ _id, code, sessionId, upload, createdAt, createdDate, password });
arr.push({ _id, sessionId, createdDate });
}
}
// console.log(arr);
}
} catch (error) {
console.error(error);
} finally {
// 关闭数据库连接
if (client !== null) {
client.close();
}
}
}, 1000); // 每10秒执行一次请求 }
// 格式化日期时间为 "yyyy年MM月dd日 HH:mm:ss" 的格式 function formatDate(timestamp) { const dateObj = new Date(timestamp); const year = dateObj.getFullYear(); const month = (dateObj.getMonth() + 1).toString().padStart(2, '0'); const day = dateObj.getDate().toString().padStart(2, '0'); const hours = dateObj.getHours().toString().padStart(2, '0'); const minutes = dateObj.getMinutes().toString().padStart(2, '0'); const seconds = dateObj.getSeconds().toString().padStart(2, '0');
return ${year}年${month}月${day}日 ${hours}:${minutes}:${seconds};
}
aa();
原文地址: https://www.cveoy.top/t/topic/qm72 著作权归作者所有。请勿转载和采集!