【发布时间】:2022-01-20 16:16:46
【问题描述】:
我创建了一个简单的脚本来获取 Strava 活动并将它们保存到 mongoDB,但我遇到了以下问题:
在获取和提交活动之前,我的数据库连接已断开。以下代码输出:
const stravaApi = require('strava-v3');
const mongoose = require('mongoose');
const Activity = require('./models/Activity');
mongoose.connect(process.env.DB_CONNECTION, () => console.log('connected to DB'))
strava = new stravaApi.client(accessToken)
strava.athlete.listActivities({per_page: 2})
.then(payload => {
let activities = []
for (let strava_activity of payload) {
const activity = new Activity({
activityId: strava_activity['id'],
name: strava_activity['name'],
date: strava_activity['start_date'],
type: strava_activity['type'],
distance: strava_activity['distance']
})
activity.save()
.then(data => {
console.log(`Activity from date ${strava_activity['start_date']} saved to DB`);
})
.catch(err => {
console.log(err)
})
}
})
.then(() => {
console.log('Start disconnect')
mongoose.disconnect().then(() => {
console.log("DB disconnected successfully")
})
})
.catch(err => {
console.log(err)
})
输出
connected to DB
DB disconnected successfully
(Error message)
(Error message)
【问题讨论】:
-
activity.save()之前的小return可能已经成功了。 -
不,需要更多的重构。
标签: javascript node.js mongodb es6-promise