Я в значительной степени растерялся, когда смотрю на ошибки живого сервера и просматриваю трассировку стека.
Например, трассировка стека облачных функций Firebase может указать мне имя функции и файл, в котором произошла ошибкапроизошло.
в Object.exports.functionName (/user_code/lib/routes/file.js:98:11)
Хотя иногда эти ошибки могут быть трудновоспроизводить локально, не зная, что пошло не так с большими объектами, передаваемыми в запросе.
const requestData = {
largeData: {
thatIsNestedManyLevels: undefined // <-- this undefined value causing server error and is hard to guess/reproduce locally
}
// etc..
}
Таким образом, сейчас моя главная задача - создать решение, которое позволит мне сделать снимок всех ближайших аргументов верхней функции и включитьэто в событии ошибки.
Я также знаю, что консоль функции firebase остановится на определенном уровне и выдаст «[объектный объект]».
Так что я могу даже посвятить новый проект сохранению этих ошибок и создать приложение для браузера, которое позволит мне просто открывать / играть с объектом в консоли Chrome.(поскольку вы можете продолжать разворачивать объект там).
Я чувствую, что это очень распространенная проблема и что решение для нее уже существует, и надеюсь, что кто-то может указать мне на них.
Вопрос: Как я могу эффективно регистрировать аргументы последней функции (в коде src) автоматически в случае возникновения ошибки?