node.js - 使用 Nodejs 创建数据库 ArangoDB 时出现 ECONNREFUSED 错误

标签 node.js arangodb

我正在关注this tutorial来自 ArangoDB.com。 它是关于使用 Node.js 创建 Arango 数据库。我是在 OS X 上做的。

在 Node 代码中执行后:

    > 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 的 Material ,我将不胜感激。

最佳答案

该错误表明客户端无法连接,可能是 ArangoDB 没有在本地主机上的端口 8529 上运行、尚未启动或尚未完成启动。

本教程应该在 Node shell 中运行,但您可能必须避免换行(例如,在调用 .then 等方法时,在 . 之前)。示例中的代码已进行格式化以便于阅读,如果您想要了解一些内容,屏幕截图可能会更安全。

关于node.js - 使用 Nodejs 创建数据库 ArangoDB 时出现 ECONNREFUSED 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37027449/

相关文章:

node.js - 调用CreateStack操作时发生错误(AccessDenied) :

javascript - .replace 在 js 中不起作用

node.js - 如何从Lambda批处理中失败特定的SQS消息?

node.js - 使用 js 中的 google firebase 云函数向 ios 发送推送通知时出现网络错误

arangodb - 过滤 ArangoDB 中的数组值

arangodb - 使用 Edge 进行范围查询

node.js - 每当项目中发生错误时报告错误

arangodb - 如何在服务器根目录下设置 Foxx App?

database - 如何在一个查询中检索树中每个节点的前 n 个子节点

node.js - 如何从函数返回值