ArangoDB How can I use methods in the @arangodb namespace in a Node/Express app?












1















I am trying to use the database methods like db._databases() or db._name() in a node app.



The manual shows require("@arangodb").db._name(); which works fine from arangosh but when I try to require('@arangodb') in the app, node throws




Error: Cannot find module '@arangodb'.




Attempting to install from NPM results in an error that it is not in the NPM registry.



So how can one require that namespace? Any pointers in the right direction would be greatly appreciated.



PS: I'm running the current 3.4rc in a docker container in case this makes a difference.










share|improve this question





























    1















    I am trying to use the database methods like db._databases() or db._name() in a node app.



    The manual shows require("@arangodb").db._name(); which works fine from arangosh but when I try to require('@arangodb') in the app, node throws




    Error: Cannot find module '@arangodb'.




    Attempting to install from NPM results in an error that it is not in the NPM registry.



    So how can one require that namespace? Any pointers in the right direction would be greatly appreciated.



    PS: I'm running the current 3.4rc in a docker container in case this makes a difference.










    share|improve this question



























      1












      1








      1








      I am trying to use the database methods like db._databases() or db._name() in a node app.



      The manual shows require("@arangodb").db._name(); which works fine from arangosh but when I try to require('@arangodb') in the app, node throws




      Error: Cannot find module '@arangodb'.




      Attempting to install from NPM results in an error that it is not in the NPM registry.



      So how can one require that namespace? Any pointers in the right direction would be greatly appreciated.



      PS: I'm running the current 3.4rc in a docker container in case this makes a difference.










      share|improve this question
















      I am trying to use the database methods like db._databases() or db._name() in a node app.



      The manual shows require("@arangodb").db._name(); which works fine from arangosh but when I try to require('@arangodb') in the app, node throws




      Error: Cannot find module '@arangodb'.




      Attempting to install from NPM results in an error that it is not in the NPM registry.



      So how can one require that namespace? Any pointers in the right direction would be greatly appreciated.



      PS: I'm running the current 3.4rc in a docker container in case this makes a difference.







      node.js arangodb






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 20 '18 at 23:07









      CoDEmanX

      6,09523042




      6,09523042










      asked Nov 20 '18 at 19:46









      Hans MoserHans Moser

      82




      82
























          1 Answer
          1






          active

          oldest

          votes


















          0














          The @arangodb module can not be required in Node.js. It works in ArangoDB's V8 environment only. It is available in arangosh, Foxx, JS transactions and user-defined AQL functions.



          If you want to talk to ArangoDB from a JavaScript environment like Node.js or a browser, then use the official JavaScript driver arangojs. Note that its interface is different from the one provided by the @arangodb module.






          share|improve this answer
























          • I was modifying the example from the Node tutorial from the arango website which does a "db = require('arangojs')(); to include the official JS driver and succeeds in calling db.createDatabase('newDB') and db.useDatabase('newDB'). Calling db._name() afterwards results in "TypeError: db._name is not a function" even switching back to the systemDB with db.useDatabase('_system');. I tracked this down to what I thought was the @arangodb namespace missing but being new to the whole Node environment I may very well be wrong. How can you get a list of databases or the name of the current DB in node?

            – Hans Moser
            Nov 20 '18 at 23:53











          • With db.get() and db.listDatabases(), see here: docs.arangodb.com/3.4/Drivers/JS/Reference/Database/…

            – CoDEmanX
            Nov 21 '18 at 16:28











          • Actually (await db.get()).name if you only want the name of the database (there are also the id, path and isSystem attribute). db.listDatabases() returns an array of strings with the database names. If you want to try this in Node interactively, you may need to do: var db = require('arangojs')(); (async function() { console.dir( await db.get() ) })()

            – CoDEmanX
            Nov 21 '18 at 16:42













          • Thanks a lot CoDEmanX! That is what I was looking for.

            – Hans Moser
            Nov 21 '18 at 19:12













          • You are welcome. If this solves your problem, please accept and up-vote the answer. Thanks!

            – CoDEmanX
            Nov 21 '18 at 20:37











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53400486%2farangodb-how-can-i-use-methods-in-the-arangodb-namespace-in-a-node-express-app%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          The @arangodb module can not be required in Node.js. It works in ArangoDB's V8 environment only. It is available in arangosh, Foxx, JS transactions and user-defined AQL functions.



          If you want to talk to ArangoDB from a JavaScript environment like Node.js or a browser, then use the official JavaScript driver arangojs. Note that its interface is different from the one provided by the @arangodb module.






          share|improve this answer
























          • I was modifying the example from the Node tutorial from the arango website which does a "db = require('arangojs')(); to include the official JS driver and succeeds in calling db.createDatabase('newDB') and db.useDatabase('newDB'). Calling db._name() afterwards results in "TypeError: db._name is not a function" even switching back to the systemDB with db.useDatabase('_system');. I tracked this down to what I thought was the @arangodb namespace missing but being new to the whole Node environment I may very well be wrong. How can you get a list of databases or the name of the current DB in node?

            – Hans Moser
            Nov 20 '18 at 23:53











          • With db.get() and db.listDatabases(), see here: docs.arangodb.com/3.4/Drivers/JS/Reference/Database/…

            – CoDEmanX
            Nov 21 '18 at 16:28











          • Actually (await db.get()).name if you only want the name of the database (there are also the id, path and isSystem attribute). db.listDatabases() returns an array of strings with the database names. If you want to try this in Node interactively, you may need to do: var db = require('arangojs')(); (async function() { console.dir( await db.get() ) })()

            – CoDEmanX
            Nov 21 '18 at 16:42













          • Thanks a lot CoDEmanX! That is what I was looking for.

            – Hans Moser
            Nov 21 '18 at 19:12













          • You are welcome. If this solves your problem, please accept and up-vote the answer. Thanks!

            – CoDEmanX
            Nov 21 '18 at 20:37
















          0














          The @arangodb module can not be required in Node.js. It works in ArangoDB's V8 environment only. It is available in arangosh, Foxx, JS transactions and user-defined AQL functions.



          If you want to talk to ArangoDB from a JavaScript environment like Node.js or a browser, then use the official JavaScript driver arangojs. Note that its interface is different from the one provided by the @arangodb module.






          share|improve this answer
























          • I was modifying the example from the Node tutorial from the arango website which does a "db = require('arangojs')(); to include the official JS driver and succeeds in calling db.createDatabase('newDB') and db.useDatabase('newDB'). Calling db._name() afterwards results in "TypeError: db._name is not a function" even switching back to the systemDB with db.useDatabase('_system');. I tracked this down to what I thought was the @arangodb namespace missing but being new to the whole Node environment I may very well be wrong. How can you get a list of databases or the name of the current DB in node?

            – Hans Moser
            Nov 20 '18 at 23:53











          • With db.get() and db.listDatabases(), see here: docs.arangodb.com/3.4/Drivers/JS/Reference/Database/…

            – CoDEmanX
            Nov 21 '18 at 16:28











          • Actually (await db.get()).name if you only want the name of the database (there are also the id, path and isSystem attribute). db.listDatabases() returns an array of strings with the database names. If you want to try this in Node interactively, you may need to do: var db = require('arangojs')(); (async function() { console.dir( await db.get() ) })()

            – CoDEmanX
            Nov 21 '18 at 16:42













          • Thanks a lot CoDEmanX! That is what I was looking for.

            – Hans Moser
            Nov 21 '18 at 19:12













          • You are welcome. If this solves your problem, please accept and up-vote the answer. Thanks!

            – CoDEmanX
            Nov 21 '18 at 20:37














          0












          0








          0







          The @arangodb module can not be required in Node.js. It works in ArangoDB's V8 environment only. It is available in arangosh, Foxx, JS transactions and user-defined AQL functions.



          If you want to talk to ArangoDB from a JavaScript environment like Node.js or a browser, then use the official JavaScript driver arangojs. Note that its interface is different from the one provided by the @arangodb module.






          share|improve this answer













          The @arangodb module can not be required in Node.js. It works in ArangoDB's V8 environment only. It is available in arangosh, Foxx, JS transactions and user-defined AQL functions.



          If you want to talk to ArangoDB from a JavaScript environment like Node.js or a browser, then use the official JavaScript driver arangojs. Note that its interface is different from the one provided by the @arangodb module.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 20 '18 at 23:06









          CoDEmanXCoDEmanX

          6,09523042




          6,09523042













          • I was modifying the example from the Node tutorial from the arango website which does a "db = require('arangojs')(); to include the official JS driver and succeeds in calling db.createDatabase('newDB') and db.useDatabase('newDB'). Calling db._name() afterwards results in "TypeError: db._name is not a function" even switching back to the systemDB with db.useDatabase('_system');. I tracked this down to what I thought was the @arangodb namespace missing but being new to the whole Node environment I may very well be wrong. How can you get a list of databases or the name of the current DB in node?

            – Hans Moser
            Nov 20 '18 at 23:53











          • With db.get() and db.listDatabases(), see here: docs.arangodb.com/3.4/Drivers/JS/Reference/Database/…

            – CoDEmanX
            Nov 21 '18 at 16:28











          • Actually (await db.get()).name if you only want the name of the database (there are also the id, path and isSystem attribute). db.listDatabases() returns an array of strings with the database names. If you want to try this in Node interactively, you may need to do: var db = require('arangojs')(); (async function() { console.dir( await db.get() ) })()

            – CoDEmanX
            Nov 21 '18 at 16:42













          • Thanks a lot CoDEmanX! That is what I was looking for.

            – Hans Moser
            Nov 21 '18 at 19:12













          • You are welcome. If this solves your problem, please accept and up-vote the answer. Thanks!

            – CoDEmanX
            Nov 21 '18 at 20:37



















          • I was modifying the example from the Node tutorial from the arango website which does a "db = require('arangojs')(); to include the official JS driver and succeeds in calling db.createDatabase('newDB') and db.useDatabase('newDB'). Calling db._name() afterwards results in "TypeError: db._name is not a function" even switching back to the systemDB with db.useDatabase('_system');. I tracked this down to what I thought was the @arangodb namespace missing but being new to the whole Node environment I may very well be wrong. How can you get a list of databases or the name of the current DB in node?

            – Hans Moser
            Nov 20 '18 at 23:53











          • With db.get() and db.listDatabases(), see here: docs.arangodb.com/3.4/Drivers/JS/Reference/Database/…

            – CoDEmanX
            Nov 21 '18 at 16:28











          • Actually (await db.get()).name if you only want the name of the database (there are also the id, path and isSystem attribute). db.listDatabases() returns an array of strings with the database names. If you want to try this in Node interactively, you may need to do: var db = require('arangojs')(); (async function() { console.dir( await db.get() ) })()

            – CoDEmanX
            Nov 21 '18 at 16:42













          • Thanks a lot CoDEmanX! That is what I was looking for.

            – Hans Moser
            Nov 21 '18 at 19:12













          • You are welcome. If this solves your problem, please accept and up-vote the answer. Thanks!

            – CoDEmanX
            Nov 21 '18 at 20:37

















          I was modifying the example from the Node tutorial from the arango website which does a "db = require('arangojs')(); to include the official JS driver and succeeds in calling db.createDatabase('newDB') and db.useDatabase('newDB'). Calling db._name() afterwards results in "TypeError: db._name is not a function" even switching back to the systemDB with db.useDatabase('_system');. I tracked this down to what I thought was the @arangodb namespace missing but being new to the whole Node environment I may very well be wrong. How can you get a list of databases or the name of the current DB in node?

          – Hans Moser
          Nov 20 '18 at 23:53





          I was modifying the example from the Node tutorial from the arango website which does a "db = require('arangojs')(); to include the official JS driver and succeeds in calling db.createDatabase('newDB') and db.useDatabase('newDB'). Calling db._name() afterwards results in "TypeError: db._name is not a function" even switching back to the systemDB with db.useDatabase('_system');. I tracked this down to what I thought was the @arangodb namespace missing but being new to the whole Node environment I may very well be wrong. How can you get a list of databases or the name of the current DB in node?

          – Hans Moser
          Nov 20 '18 at 23:53













          With db.get() and db.listDatabases(), see here: docs.arangodb.com/3.4/Drivers/JS/Reference/Database/…

          – CoDEmanX
          Nov 21 '18 at 16:28





          With db.get() and db.listDatabases(), see here: docs.arangodb.com/3.4/Drivers/JS/Reference/Database/…

          – CoDEmanX
          Nov 21 '18 at 16:28













          Actually (await db.get()).name if you only want the name of the database (there are also the id, path and isSystem attribute). db.listDatabases() returns an array of strings with the database names. If you want to try this in Node interactively, you may need to do: var db = require('arangojs')(); (async function() { console.dir( await db.get() ) })()

          – CoDEmanX
          Nov 21 '18 at 16:42







          Actually (await db.get()).name if you only want the name of the database (there are also the id, path and isSystem attribute). db.listDatabases() returns an array of strings with the database names. If you want to try this in Node interactively, you may need to do: var db = require('arangojs')(); (async function() { console.dir( await db.get() ) })()

          – CoDEmanX
          Nov 21 '18 at 16:42















          Thanks a lot CoDEmanX! That is what I was looking for.

          – Hans Moser
          Nov 21 '18 at 19:12







          Thanks a lot CoDEmanX! That is what I was looking for.

          – Hans Moser
          Nov 21 '18 at 19:12















          You are welcome. If this solves your problem, please accept and up-vote the answer. Thanks!

          – CoDEmanX
          Nov 21 '18 at 20:37





          You are welcome. If this solves your problem, please accept and up-vote the answer. Thanks!

          – CoDEmanX
          Nov 21 '18 at 20:37




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53400486%2farangodb-how-can-i-use-methods-in-the-arangodb-namespace-in-a-node-express-app%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Guess what letter conforming each word

          Port of Spain

          Run scheduled task as local user group (not BUILTIN)