2014-05-04 21 views
1

ENOENT錯誤我想使用這裏找到大量查詢包: https://www.npmjs.org/package/bigquery節點BigQuery的包 - 在Ubuntu

設置:Ubuntu的14,最新的節點,nginx的,加上包裝的BigQuery和它的依賴。

我相信我已經正確設置它,包括PEM文件,但我正在逐漸從gauth一個錯誤,當我嘗試加載密鑰文件:

[2014-05-04 02:14:57.008] [ERROR] gauth - { [Error: ENOENT, open './key.mydomain.com.p12.pem'] 
    errno: 34, 
    code: 'ENOENT', 
    path: './key.mydomain.com.p12.pem' } 
Error: ENOENT, open './key.mydomain.com.p12.pem' 

我運行一個簡單的測試腳本,看起來像這樣(我Xxxx'd了我的項目ID):

var http = require('http') 
    , bq = require('bigquery') 
    , fs = require('fs') 
    , prjId = 'xxxxxxxxxx'; //you need to modify this 

bq.init({ 
    scope: 'https://www.googleapis.com/auth/bigquery', 
    client_secret: './client_secrets.json', 
    privatekey_pem: './private.mydomain.com.p12.pem', 
    key_pem: './key.mydomain.com.p12.pem' 
    }); 


http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.write('Testing BigQuery... \n'); 

    bq.job.query(prjId, 'select count(*) from publicdata:samples.wikipedia', function(e,r,d){ 
     if(e) console.log(e); 
     console.log(JSON.stringify(d)); 
    }); 

    res.end('Done. \n'); 
}).listen(3000, "127.0.0.1"); 
console.log('Server running at http://127.0.0.1:3000/'); 

我試圖引用文件不同,使用__dirname也沒有斜槓。

有什麼想法?我也在查看依賴項中的Google代碼,但只是沒有考慮到這一點。

回答

1

啊,想通了:我用來生成公鑰和私鑰的P12文件是用我的CLIENT_SECRETS不匹配。

因此,如果任何人得到這個問題,ENOENT可以通過引起具有的client_secrets.json和那些沒有共同創建一個服務帳戶一組鍵。

1

A 34錯誤的意思是「沒有這樣的文件或目錄」。您確定文件key.mydomain.com.p12.pem與索引文件存在於同一個目錄中嗎?

+0

沒錯。它與app.js位於同一個目錄中。爲了幫助驗證,我將文件名更改爲「破壞」它的其他內容......在這種情況下,只需啓動節點服務器即可立即發生ENOENT錯誤。由於我上面的示例有一個運行良好的Node服務器,並且在使用Google Auth庫的封裝包裝器時我只獲得ENOENT,所以我認爲其他問題是錯誤的... – mungojerie