#node.js #firebase #google-cloud-firestore
#node.js #firebase #google-облако-firestore
Вопрос:
метод post ничего не возвращает, аналогично методу get код находится на узле js с использованием firebase настройка базы огня выполнена, но когда передается json, он возвращает пустой
exports.postBlog = (req, res) => {
(async() => {
try {
await dbs.collection('myBlog').doc('zim').set(data);
return res.status(200).send();
} catch (error) {
console.log("there was an error running this file");
return res.status(500).send(error);
}
})();
};
exports.getblog = (req, res) => {
(async() => {
try {
const page = dbs.collection('myblog').doc('zim');
await page.get(data);
return res.status(200).send(response);
} catch (error) {
console.log(error);
return res.status(500).send(error);
}
})();
};
Комментарии:
1. Мне трудно понять, в чем проблема. 1) Где вы запускаете этот код? 2) Когда вы отлаживаете этот код построчно, какая конкретная строка не выполняет то, что вы ожидаете от нее?
2. я запускаю код в vs code, синтаксис в порядке, но когда вы отправляете объект json, он возвращает пустой. его код узла js
3. когда я развертываю его по командной строке, он развертывается, но когда вы отправляете .json, он возвращает пустой
4.
exports.postBlog = (req, res) =>{ (async () =>{ try { const data = { title: 'chief', body: 'chest', footer: 'date' }; await dbs.collection('myBlog').doc('zim').set(data); return res.status(200).send(); }catch(error){ console.log("there was an error running this file"); return res.status(500).send(error); } })(); };
5. когда я передаю что-то, оно возвращает пустое
Ответ №1:
Мы не знаем, что конкретно вы используете, но, вероятно, используете какой node
-то подобный сервер express
. Как правило, всю respose
документацию вы можете найти здесь. Я предполагаю, что код работает и не возвращает никаких ошибок.
Итак, в postBlog
вам нужно вернуть что-то в send
методе, в зависимости от того, что вы хотите вернуть в ответ. Простейшим примером может быть возврат текста, например, «Документ, сохраненный в Firestore». Для достижения этого вы можете добавить параметр в функцию отправки:
return res.status(200).send("Document saved in Firestore");
Другое дело, что мы не знаем, что на самом деле делает функция, поскольку она записывает в undefined
объект data
firestore (по крайней мере, просматривая опубликованный код). Вы должны написать некоторый объект в set
методе. Пожалуйста, найдите (документацию) и пример для node.js .
Когда дело доходит до getblog
неопределенного, это, вероятно, потому, что вы отправляете объект respose
, который не определен в коде. Опять же, мы не знаем, чего вы хотите достичь в логике… Снова использовался объект данных, однако, согласно документации get
API, он может иметь параметр, но это параметры, и обычно они не используются. Вы можете попробовать это:
exports.getblog = (req, res) => {
(async() => {
try {
const page = dbs.collection('myblog').doc('zim');
let documentSnapshot = await page.get();
let response = documentSnapshot.data();
return res.status(200).send(response);
} catch (error) {
console.log(error);
return res.status(500).send(error);
}
})();
};
Я настоятельно рекомендую попробовать этот документ Get started with Cloud Firestore, который содержит оба set
и get
примеры. Пример get
метода записывается в консоль там, однако вы можете легко принять код, изменив cosole.log
на res.status(200).send
.