【发布时间】:2019-06-09 17:12:05
【问题描述】:
TLDR:将 JSON(成功)写入我的 Firestore 后,下一个请求将给我内部服务器错误 (500)。我怀疑问题在于插入尚未完成。
所以基本上,我有这个代码:
const jsonToDb = express();
exports.jsondb = functions.region('europe-west1').https.onRequest(jsonToDb);
jsonToDb.post('', (req, res) => {
let doc;
try {
doc = JSON.parse(req.body);
} catch(error) {
res.status(400).send(error.toString()).end();
return;
}
myDbFuncs.saveMyDoc(doc);
res.status(201).send("OK").end();
}
数据库函数在另一个JS文件中。
module.exports.saveMyDoc = function (myDoc) {
let newDoc = db.collection('insertedDocs').doc(new Date().toISOString());
newDoc.set(myDoc).then().catch();
return;
};
所以我有几个理论,也许其中一个没有错,但请帮助我。 (另外如果我在这个小sn-p中犯了一些错误,请告诉我。)
复制:
我发送第一个请求 => 一切正常,Json 在数据库中。
我在第一个请求给我 OK 状态后发送了第二个请求 => 它在几秒钟内没有做任何事情,然后 500:内部服务器错误。
日志:函数执行耗时 4345 毫秒,完成状态为:“连接错误”。
我只是不明白。假设我将它用作 API,同时有多个请求。 它不能处理吗?(我想它可以处理,只是我做了一些愚蠢的事情。)我故意在第一个请求完成后发送第二个请求并且发生这种情况。 我应该让 saveMyDoc 异步吗?
【问题讨论】:
标签: json express google-cloud-firestore google-cloud-functions