Если вы хотите добавить сообщение к ответу сервера при использовании Express.js, вам нужно изменить формат ответа на объект JSON, содержащий не только данные, но и оповещение. Вот как это можно сделать:
```javascript
async getFoo(req, res) {
try {
const foo = await db.query(`SELECT * FROM foo ORDER BY id`);
res.json({ data: foo.rows, message: "Foo успешно получен" });
} catch (error) {
res.status(500).json({ error: "Не удалось получить Foo" });
}
}
```
Теперь, при успешном получении данных, ответ будет содержать сообщение вместе с данными:
```json
{
"data": [ ... ],
"message": "Foo успешно получен"
}
```
При возникновении ошибки, ответ будет содержать только сообщение об ошибке.
На фронтенде вы можете использовать компонент Vue для уведомлений, чтобы отобразить сообщение, полученное из ответа сервера. Вы можете обработать статус ответа и содержание сообщения на клиентской стороне, чтобы показывать уведомления в зависимости от результата запроса. Например:
```vue
<template>
<div>
<div v-if="successMessage">{{ successMessage }}</div>
<div v-if="errorMessage">{{ errorMessage }}</div>
</div>
</template>
<script>
export default {
data() {
return {
successMessage: "",
errorMessage: "",
};
},
methods: {
async fetchData() {
try {
const response = await fetch("/api/foo");
const data = await response.json();
if (response.ok) {
this.successMessage = data.message;
// обработка полученных данных...
} else {
this.errorMessage = data.error;
}
} catch (error) {
this.errorMessage = "Произошла ошибка";
}
},
},
mounted() {
this.fetchData();
},
};
</script>
```
В этом примере, в зависимости от статуса ответа сервера, компонент Vue будет отображать определенное сообщение. Вы можете дальше настроить этот компонент для показа оповещений в соответствии с вашими требованиями и стилями.