Я разрабатываю игру со стеком MEAN, поэтому мне нужно создать API с Node & MongoDB для хранения результатов и использования этого API в клиенте Angular.
С базой данных все в порядке, и я могу добавить оценку с помощью POST, но теперь я пытаюсь выполнить запрос к базе данных с помощью API, а метод GET не работает.
Я пытаюсь создать простой ответ (route /), но ответ - это Angular client (index.html) в Postman, POST работает, но GET нет!
classRouter.post('/add', (req, res) => {
// Check request body
if (typeof req.body === 'undefined' || req.body === null) {
sendBodyError(res, Vocabulary.errors.noBody)
};
// Check fields in the body
const {
miss,
extra,
ok
} = checkFields(Mandatory.game, req.body);
//=> Error: bad fields provided
if (!ok) {
sendFieldsError(res, Vocabulary.errors.badFields, miss, extra)
}
else {
//=> Request is valid: use controller
createScore(req.body)
.then(apiResponse => sendApiSuccessResponse(res, Vocabulary.request.success, apiResponse))
.catch(apiResponse => sendApiErrorResponse(res, Vocabulary.request.error, apiResponse))
};
});
// Route for all score
classRouter.get('/all', (req, res) => {
getAllScores()
.then(apiResponse => sendApiSuccessResponse(res, Vocabulary.request.success, apiResponse))
.catch(apiResponse => sendApiErrorResponse(res, Vocabulary.request.error, apiResponse))
});
classRouter.get('/', function(req, res) {
res.send('GET request to the homepage');
});
const createScore = body => {
return new Promise((resolve, reject) => {
// Register new user
ScoreModel.create(body)
.then(mongoResponse => resolve(mongoResponse))
.catch(mongoResponse => reject(mongoResponse))
});
};
// Get all scores from the database
const getAllScores = () => {
return new Promise((resolve, reject) => {
ScoreModel.find((error, item) => {
// Request error
if (error) {
return reject(error)
} else {
return resolve(item)
};
});
});
};
Если кто-то может мне помочь?
Спасибо