Hey all, I would like to play around with the nodem interface between nodejs and yottadb.
My goal is to create a web page that allows user to enter some information, and it will get stored in the yottadb database. Using chatgpt, I have a server.js that gets user info and saves to a flat file. I would like to change that to save to the database.
My current test folder for my node project is /opt/worldvista/EHR/web/killthis I changed into this directory and typed npm install nodem.
I then started nodejs and at the prompt entered this:
>const ydb = require('nodem').Ydb();
But it generates an error, as below.
> const ydb = require('nodem').Ydb();
Error: The module '/opt/worldvista/EHR/web/killthis/node_modules/nodem/build/Release/nodem.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 127. This version of Node.js requires
NODE_MODULE_VERSION 109. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at Module._extensions..node (node:internal/modules/cjs/loader:1452:18)
at Module.load (node:internal/modules/cjs/loader:1197:32)
at Module._load (node:internal/modules/cjs/loader:1013:12)
at Module.require (node:internal/modules/cjs/loader:1225:19)
at require (node:internal/modules/helpers:177:18)
at Object.<anonymous> (/opt/worldvista/EHR/web/killthis/node_modules/nodem/lib/nodem.js:42:22)
at Module._compile (node:internal/modules/cjs/loader:1356:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
at Module.load (node:internal/modules/cjs/loader:1197:32)
at Module._load (node:internal/modules/cjs/loader:1013:12)
Try rebuilding Nodem with 'npm run install' in the /opt/worldvista/EHR/web/killthis/node_modules/nodem directory
Uncaught TypeError: require(...).Ydb is not a function
>
(To exit, press Ctrl+C again or Ctrl+D or type .exit)
>
I changed to /opt/worldvista/EHR/web/killthis/node_modules/nodem
I tried recompiling, and everything seems to go OK, as below.
kdt0p@ubuntu64:/opt/worldvista/EHR/web/killthis/node_modules/nodem$ npm run install
> no...@0.20.9 preinstall
> bash -o pipefail -c "node lib/preinstall |& tee builderror.log"
> no...@0.20.9 install
> bash -o pipefail -c "node-gyp -j max rebuild 3>&1 1>&2 2>&3 3>&- | tee -a builderror.log"
gyp info it worked if it ends with ok
gyp info using node...@10.1.0
gyp info using no...@22.2.0 | linux | x64
gyp info find Python using Python version 3.12.3 found at "/usr/bin/python3"
gyp info spawn /usr/bin/python3
gyp info spawn args [
gyp info spawn args '/home/kdt0p/.nvm/versions/node/v22.2.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/opt/worldvista/EHR/web/killthis/node_modules/nodem/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/kdt0p/.nvm/versions/node/v22.2.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/kdt0p/.cache/node-gyp/22.2.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/home/kdt0p/.cache/node-gyp/22.2.0',
gyp info spawn args '-Dnode_gyp_dir=/home/kdt0p/.nvm/versions/node/v22.2.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/home/kdt0p/.cache/node-gyp/22.2.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/opt/worldvista/EHR/web/killthis/node_modules/nodem',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build', '--jobs', 6 ]
make: Entering directory '/opt/worldvista/EHR/web/killthis/node_modules/nodem/build'
CXX(target) Release/obj.target/nodem/src/nodem.o
CXX(target) Release/obj.target/nodem/src/gtm.o
CXX(target) Release/obj.target/nodem/src/ydb.o
SOLINK_MODULE(target) Release/obj.target/nodem.node
COPY Release/nodem.node
make: Leaving directory '/opt/worldvista/EHR/web/killthis/node_modules/nodem/build'
gyp info ok
> no...@0.20.9 postinstall
> bash -o pipefail -c "node lib/postinstall 3>&1 1>&2 2>&3 3>&- | tee -a builderror.log"
But when I retry
>const ydb = require('nodem').Ydb();
I get the same error.
Can someone point me in the correct direction?
Thanks
Kevin