ArangoDB How can I use methods in the @arangodb namespace in a Node/Express app?
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
add a comment |
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
add a comment |
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
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
node.js arangodb
edited Nov 20 '18 at 23:07
CoDEmanX
6,09523042
6,09523042
asked Nov 20 '18 at 19:46
Hans MoserHans Moser
82
82
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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.
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
Withdb.get()
anddb.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 theid
,path
andisSystem
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
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
Withdb.get()
anddb.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 theid
,path
andisSystem
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
add a comment |
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.
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
Withdb.get()
anddb.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 theid
,path
andisSystem
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
add a comment |
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.
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.
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
Withdb.get()
anddb.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 theid
,path
andisSystem
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
add a comment |
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
Withdb.get()
anddb.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 theid
,path
andisSystem
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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