簡體   English   中英

來自 Node.js BigQuery 客戶端庫的更詳細的錯誤消息

[英]More detailed error messages from Node.js BigQuery client library

我正在使用BigQuery 的官方 Google Node 連接器

我有以下代碼片段將記錄流式傳輸到數據庫中:

module.exports.sendToBigQuery = (rows) => {
    bigquery
        .dataset(DATASET_NAME)
        .table(TABLE_NAME)
        .insert(rows)
        .catch(err => {
            if (err && err.name === 'PartialFailureError') {
                if (err.errors && err.errors.length > 0) {
                    console.log('Insert errors:');
                    err.errors.forEach(err => console.error(err));
                }
            } else {
                console.error('ERROR:', err);
            }
        });
};

不幸的是,每當我的數據與模式不匹配時,我得到的只是這個神秘的錯誤對象: { errors: [ { message: 'no such field.', reason: 'invalid' } ],

沒有location字段可以告訴我缺少哪個字段,這使得調試此代碼成為更復雜模式的噩夢。

有沒有辦法以某種方式啟用錯誤的調試級別? 或者它只是客戶端實現中的一個錯誤? 知道我如何訪問這些信息嗎?

此處提供雲支持,我可以看到您還提交了一個關於此的github 問題,其中明確指出 a) 這與 node.js 客戶端庫無關,但與 BigQuery API 本身相關,並且 b) 您至少可以獲得發生錯誤的行。 無論如何,我認為目前無論如何也無法獲得缺失的字段,但我提交了一個功能請求,您可以關注該請求以獲取更新。

我不確定在撰寫本文時錯誤響應中的內容,但如果您深入研究,BigQuery 錯誤響應現在還包含錯誤信息。 以下抓取自調試會話並顯示了錯誤對象的結構。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM