2016-05-04 22 views
0

ArangoDB.comのthis tutorialに従っています。 node.jsを使ってArangoデータベースを作成しようとしています。私は、ノードのコードで実行した後OS Xのデータベース作成時にECONNREFUSEDエラーが発生しました。

でそれをやっている:

> Database = require('arangojs').Database; 
     [Function: Database] 
    > db = new Database('http://127.0.0.1:8529'); 
     Database { 
    _connection: 
    Connection { 
    config: 
     { url: 'http://127.0.0.1:8529', 
     databaseName: '_system', 
     arangoVersion: 20300, 
     agentOptions: [Object], 
     headers: [Object] }, 
    _request: [Function: request], 
    promisify: [Function] }, 
    _api: 
    Route { 
    _connection: 
     Connection { 
     config: [Object], 
     _request: [Function: request], 
     promisify: [Function] }, 
    _path: '_api', 
    _headers: undefined }, 
    name: '_system' } 

    > db.createDatabase('mydb', function (err) { 
     if (!err) console.log('Database created'); 
     else console.error('Failed to create database:', err); 
    }); 

私はECONNREFUSEDエラーを取得しています:

Failed to create database: { [Error: connect ECONNREFUSED 127.0.0.1:8529] 
    code: 'ECONNREFUSED', 
    errno: 'ECONNREFUSED', 
    syscall: 'connect', 
    address: '127.0.0.1', 
    port: 8529, 
    request: 
    ClientRequest { 
    domain: 
     Domain { 
     domain: null, 
     _events: [Object], 
     _eventsCount: 1, 
     _maxListeners: undefined, 
     members: [] }, 
    _events: { response: [Object], error: [Function] }, 
    _eventsCount: 2, 
    _maxListeners: undefined, 
    output: [], 
    outputEncodings: [], 
    outputCallbacks: [], 
    outputSize: 0, 
    writable: true, 
    _last: false, 
    chunkedEncoding: false, 
    shouldKeepAlive: true, 
    useChunkedEncodingByDefault: true, 
    sendDate: false, 
    _removedHeader: { 'content-length': false }, 
    _contentLength: null, 
    _hasBody: true, 
    _trailer: '', 
    finished: true, 
    _headerSent: true, 
    socket: 
     Socket { 
     _connecting: false, 
     _hadError: false, 
     _handle: null, 
     _parent: null, 
     _host: null, 
     _readableState: [Object], 
     readable: false, 
     domain: [Object], 
     _events: [Object], 
     _eventsCount: 10, 
     _maxListeners: undefined, 
     _writableState: [Object], 
     writable: false, 
     allowHalfOpen: false, 
     destroyed: true, 
     bytesRead: 0, 
     _bytesDispatched: 0, 
     _sockname: null, 
     _pendingData: [Object], 
     _pendingEncoding: '', 
     server: null, 
     _server: null, 
     parser: [Object], 
     _httpMessage: [Circular], 
     read: [Function], 
     _consuming: true, 
     _idleNext: null, 
     _idlePrev: null, 
     _idleTimeout: -1 }, 
    connection: 
     Socket { 
     _connecting: false, 
     _hadError: false, 
     _handle: null, 
     _parent: null, 
     _host: null, 
     _readableState: [Object], 
     readable: false, 
     domain: [Object], 
     _events: [Object], 
     _eventsCount: 10, 
     _maxListeners: undefined, 
     _writableState: [Object], 
     writable: false, 
     allowHalfOpen: false, 
     destroyed: true, 
     bytesRead: 0, 
     _bytesDispatched: 0, 
     _sockname: null, 
     _pendingData: [Object], 
     _pendingEncoding: '', 
     server: null, 
     _server: null, 
     parser: [Object], 
     _httpMessage: [Circular], 
     read: [Function], 
     _consuming: true, 
     _idleNext: null, 
     _idlePrev: null, 
     _idleTimeout: -1 }, 
    _header: 'POST /_db/_system/_api/database HTTP/1.1\r\ncontent-type: application/json\r\ncontent-length: 15\r\nx-arango-version: 20300\r\nHost: 127.0.0.1:8529\r\nConnection: keep-alive\r\n\r\n', 
    _headers: 
     { 'content-type': 'application/json', 
     'content-length': 15, 
     'x-arango-version': 20300, 
     host: '127.0.0.1:8529' }, 
    _headerNames: 
     { 'content-type': 'content-type', 
     'content-length': 'content-length', 
     'x-arango-version': 'x-arango-version', 
     host: 'Host' }, 
    _onPendingData: null, 
    agent: 
     Agent { 
     domain: [Object], 
     _events: [Object], 
     _eventsCount: 1, 
     _maxListeners: undefined, 
     defaultPort: 80, 
     protocol: 'http:', 
     options: [Object], 
     requests: {}, 
     sockets: [Object], 
     freeSockets: {}, 
     keepAliveMsecs: 1000, 
     keepAlive: true, 
     maxSockets: 3, 
     maxFreeSockets: 256 }, 
    socketPath: undefined, 
    method: 'POST', 
    path: '/_db/_system/_api/database', 
    parser: 
     HTTPParser { 
     '0': [Function: parserOnHeaders], 
     '1': [Function: parserOnHeadersComplete], 
     '2': [Function: parserOnBody], 
     '3': [Function: parserOnMessageComplete], 
     '4': null, 
     _headers: [], 
     _url: '', 
     _consumed: false, 
     socket: [Object], 
     incoming: null, 
     outgoing: [Circular], 
     maxHeaderPairs: 2000, 
     onIncoming: [Function: parserOnIncomingClient] } } } 

残念ながら、私はエラーをローカライズすることはできません。私は同様の問題を探していましたが、解決策は見つかりませんでした。私はこれらの技術に関する多くの経験がなく、今はArangoDBを開始しています。

私は、ArangoDBをどのように始めるべきか、それを解決するためのヒントやその他の資料に感謝します。

+1

ノードファイルコピーとしてそのコードをserver.jsに貼り付けてから、ノードserver.jsを実行してみましたか? – Zargold

+0

ありがとう、私は今それをchceckedし、それはshoudが持っているように働いた。 –

答えて

2

一般に、ノードを使用して実行する必要があるコードが複数ある場合は、実行するすべてのコードを含むJavaScriptファイルを作成することをお勧めします(script.jsなど)。そのコードを実行するには、node script.jsを使用します。これにより、ノードはコードを行単位で評価し、(潜在的に)コードを実行しているコードを永続的に保持します(サーバーが行うようなことがこれに相当します)。

ノードシェル(別名nodeを直接実行している)を使用すると、永続的に実行されるコードを作成することはできません。

結論として、サーバコードをscript.jsに置き、b2hシェル(ノードがインストールされている)の内側にコマンドnode script.jsを付けて実行します。

これは、サーバーを起動せず、シェル内でポートを持続的に消費しない可能性が高いコードです。

2

このエラーは、クライアントが接続できなかったことを示します。おそらく、ArangoDBはlocalhost上のポート8529で実行されていないか、開始されていないか、起動が完了していません。

チュートリアルはノードシェルから機能するはずですが、改行を避ける必要があります(.thenのようなメソッドを呼び出すときは.より前)。サンプルのコードは読みやすくするために書式設定されています。

+0

私は問題がまだ(まだ)サーバーを実行していない可能性があると思う。その後、問題なく動作し始めました。 –

関連する問題