Я пытаюсь реструктурировать небольшое приложение, которое я создаю.Я использую API Spotify, и на данный момент у меня есть вся логика в одном файле, и я просто создаю там маршруты.Я хочу создать класс для SpotifyClient и другой класс для моего сервера, но я не уверен, что делать по этому поводу.У меня есть эти два маршрута специально для авторизации Spotify, которые я хочу удалить и поместить в класс:
app.get('/login', (req, res) => {
const state = generateRandomString(16);
res.cookie(STATE_KEY, state);
res.redirect(spotifyApi.createAuthorizeURL(scopes, state));
});
app.get('/callback', (req, res) => {
const { code, state } = req.query;
const storedState = req.cookies ? req.cookies[STATE_KEY] : null;
if (state === null || state !== storedState) {
res.redirect('/#/error/state mismatch');
} else {
res.clearCookie(STATE_KEY);
spotifyApi
.authorizationCodeGrant(code)
.then(data => {
const expiresIn = data.body.expires_in;
const accessToken = data.body.access_token;
const refreshToken = data.body.refresh_token;
// Set the access token on the API object to use it in later calls
SPOTIFY_TOKEN = accessToken;
spotifyApi.setAccessToken(accessToken);
spotifyApi.setRefreshToken(refreshToken);
spotifyApi.getMe().then(({ body }) => {
SPOTIFY_ID = body.id;
});
res.redirect('/search');
})
.catch(err => {
res.redirect('/#/error/invalid token');
});
}
});
У меня есть ключи API, которые я экспортирую как переменные среды и сохраню их в объекте в config.js
file.
Итак, начнем, будет что-то вроде этого:
const config = require('./config');
class SpotifyClient {
}
Но передам ли я ключи в своем конструкторе?Как бы я настроил маршруты?Должны ли они быть просто методами класса?
Буду признателен за любой совет!