Error in Vidly-api Node Project When Performing NPM I

Can someone help me solve this bug when installing node in vidly-api node project ? I am stuck. Is there a way i can use the same node version in the project to see if this solves the error?

npm ERR! node-pre-gyp ERR! Pre-built binaries not found for bcrypt@1.0.3 and node@16.16.0 (node-v93 ABI) (falling back to source compile with node-gyp)
npm ERR! node-pre-gyp http 404 status code downloading tarball https://github.com/kelektiv/node.bcrypt.js/releases/download/v1.0.3/bcrypt_lib-v1.0.3-node-v93-linux-x64.tar.gz
npm ERR! node-pre-gyp ERR! Tried to download(undefined): https://github.com/kelektiv/node.bcrypt.js/releases/download/v1.0.3/bcrypt_lib-v1.0.3-node-v93-linux-x64.tar.gz
npm ERR! node-pre-gyp ERR! Pre-built binaries not found for bcrypt@1.0.3 and node@16.16.0 (node-v93 ABI) (falling back to source compile with node-gyp)

npm ERR! 101 | attribute((deprecated(message))) declarator
npm ERR! | ^~~~~~~~~~
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h:865:62: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate*, v8::Localv8::Object, const char*, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
npm ERR! 865 | v8::Isolate::GetCurrent(), target, method, argc, argv);
npm ERR! | ^
npm ERR! In file included from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:170:50: note: declared here
npm ERR! 170 | NODE_EXTERN v8::Localv8::Value MakeCallback(
npm ERR! | ^~~~~~~~~~~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’
npm ERR! 101 | attribute((deprecated(message))) declarator
npm ERR! | ^~~~~~~~~~
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Localv8::Value)’:
npm ERR! …/…/nan/nan.h:911:53: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR! 911 | v8::Localv8::String string = from->ToString();
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocalv8::String v8::Value::ToString(v8::Localv8::Context) const’
npm ERR! 3048 | V8_WARN_UNUSED_RESULT MaybeLocal ToString(
npm ERR! | ^~~~~~~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate expects 1 argument, 0 provided
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h:921:37: error: cannot convert ‘char
’ to ‘v8::Isolate*’
npm ERR! 921 | length_ = string->WriteUtf8(str_, static_cast(len), 0, flags);
npm ERR! | ^~~~
npm ERR! | |
npm ERR! | char*
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3277:26: note: initializing argument 1 of ‘int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const’
npm ERR! 3277 | int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
npm ERR! | ~^
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h: In member function ‘v8::Localv8::Value Nan::Callback::Call_(v8::Isolate*, v8::Localv8::Object, int, v8::Localv8::Value) const’:
npm ERR! …/…/nan/nan.h:1479:5: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate
, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value*)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
npm ERR! 1479 | ));
npm ERR! | ^
npm ERR! In file included from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:184:50: note: declared here
npm ERR! 184 | NODE_EXTERN v8::Localv8::Value MakeCallback(
npm ERR! | ^
~~~~~~~~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’
npm ERR! 101 | attribute((deprecated(message))) declarator
npm ERR! | ^~~~~~~~~~
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h:1479:5: warning: ‘v8::Localv8::Value node::MakeCallback(v8::Isolate*, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’ is deprecated: Use MakeCallback(…, async_context) [-Wdeprecated-declarations]
npm ERR! 1479 | ));
npm ERR! | ^
npm ERR! In file included from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:184:50: note: declared here
npm ERR! 184 | NODE_EXTERN v8::Localv8::Value MakeCallback(
npm ERR! | ^~~~~~~~~~~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’
npm ERR! 101 | attribute((deprecated(message))) declarator
npm ERR! | ^~~~~~~~~~
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char
, const v8::Localv8::Value&)’:
npm ERR! …/…/nan/nan.h:1533:64: error: no matching function for call to ‘v8::Object::Set(v8::Localv8::String, const v8::Localv8::Value&)’
npm ERR! 1533 | New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Localv8::Context, v8::Localv8::Value, v8::Localv8::Value)’
npm ERR! 3961 | V8_WARN_UNUSED_RESULT Maybe Set(Local context,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note: candidate expects 3 arguments, 2 provided
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Localv8::Context, uint32_t, v8::Localv8::Value)’
npm ERR! 3964 | V8_WARN_UNUSED_RESULT Maybe Set(Local context, uint32_t index,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note: candidate expects 3 arguments, 2 provided
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Localv8::String&, const v8::Localv8::Value&)’:
npm ERR! …/…/nan/nan.h:1539:42: error: no matching function for call to ‘v8::Object::Set(const v8::Localv8::String&, const v8::Localv8::Value&)’
npm ERR! 1539 | New(persistentHandle)->Set(key, value);
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Localv8::Context, v8::Localv8::Value, v8::Localv8::Value)’
npm ERR! 3961 | V8_WARN_UNUSED_RESULT Maybe Set(Local context,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note: candidate expects 3 arguments, 2 provided
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Localv8::Context, uint32_t, v8::Localv8::Value)’
npm ERR! 3964 | V8_WARN_UNUSED_RESULT Maybe Set(Local context, uint32_t index,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note: candidate expects 3 arguments, 2 provided
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Localv8::Value&)’:
npm ERR! …/…/nan/nan.h:1545:44: error: no matching function for call to ‘v8::Object::Set(uint32_t&, const v8::Localv8::Value&)’
npm ERR! 1545 | New(persistentHandle)->Set(index, value);
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Localv8::Context, v8::Localv8::Value, v8::Localv8::Value)’
npm ERR! 3961 | V8_WARN_UNUSED_RESULT Maybe Set(Local context,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3961:37: note: candidate expects 3 arguments, 2 provided
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note: candidate: ‘v8::Maybe v8::Object::Set(v8::Localv8::Context, uint32_t, v8::Localv8::Value)’
npm ERR! 3964 | V8_WARN_UNUSED_RESULT Maybe Set(Local context, uint32_t index,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3964:37: note: candidate expects 3 arguments, 2 provided
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(const char*) const’:
npm ERR! …/…/nan/nan.h:1551:61: error: no matching function for call to ‘v8::Object::Get(v8::Localv8::String)’
npm ERR! 1551 | New(persistentHandle)->Get(New(key).ToLocalChecked()));
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocalv8::Value v8::Object::Get(v8::Localv8::Context, v8::Localv8::Value)’
npm ERR! 4007 | V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note: candidate expects 2 arguments, 1 provided
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocalv8::Value v8::Object::Get(v8::Localv8::Context, uint32_t)’
npm ERR! 4010 | V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note: candidate expects 2 arguments, 1 provided
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(const v8::Localv8::String&) const’:
npm ERR! …/…/nan/nan.h:1557:55: error: no matching function for call to ‘v8::Object::Get(const v8::Localv8::String&)’
npm ERR! 1557 | return scope.Escape(New(persistentHandle)->Get(key));
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocalv8::Value v8::Object::Get(v8::Localv8::Context, v8::Localv8::Value)’
npm ERR! 4007 | V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note: candidate expects 2 arguments, 1 provided
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocalv8::Value v8::Object::Get(v8::Localv8::Context, uint32_t)’
npm ERR! 4010 | V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note: candidate expects 2 arguments, 1 provided
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h: In member function ‘v8::Localv8::Value Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
npm ERR! …/…/nan/nan.h:1562:57: error: no matching function for call to ‘v8::Object::Get(uint32_t&)’
npm ERR! 1562 | return scope.Escape(New(persistentHandle)->Get(index));
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note: candidate: ‘v8::MaybeLocalv8::Value v8::Object::Get(v8::Localv8::Context, v8::Localv8::Value)’
npm ERR! 4007 | V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4007:43: note: candidate expects 2 arguments, 1 provided
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note: candidate: ‘v8::MaybeLocalv8::Value v8::Object::Get(v8::Localv8::Context, uint32_t)’
npm ERR! 4010 | V8_WARN_UNUSED_RESULT MaybeLocal Get(Local context,
npm ERR! | ^~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:4010:43: note: candidate expects 2 arguments, 1 provided
npm ERR! In file included from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
npm ERR! …/…/nan/nan.h:1732:62: warning: cast between incompatible function types from ‘void ()(uv_work_t)’ {aka ‘void ()(uv_work_s)’} to ‘uv_after_work_cb’ {aka ‘void ()(uv_work_s, int)’} [-Wcast-function-type]
npm ERR! 1732 | , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
npm ERR! | ^
npm ERR! In file included from /usr/include/c++/9/cassert:44,
npm ERR! from /home/rwx/.cache/node-gyp/16.16.0/include/node/node_object_wrap.h:26,
npm ERR! from …/…/nan/nan.h:51,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! …/…/nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
npm ERR! …/…/nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistentv8::Object’ has no member named ‘IsNearDeath’
npm ERR! 24 | assert(persistent().IsNearDeath());
npm ERR! …/src/bcrypt_node.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE {anonymous}::Compare(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! …/src/bcrypt_node.cc:290:45: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR! 290 | Nan::Utf8String input(info[0]->ToString());
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocalv8::String v8::Value::ToString(v8::Localv8::Context) const’
npm ERR! 3048 | V8_WARN_UNUSED_RESULT MaybeLocal ToString(
npm ERR! | ^~~~~~~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate expects 1 argument, 0 provided
npm ERR! …/src/bcrypt_node.cc:291:49: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR! 291 | Nan::Utf8String encrypted(info[1]->ToString());
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocalv8::String v8::Value::ToString(v8::Localv8::Context) const’
npm ERR! 3048 | V8_WARN_UNUSED_RESULT MaybeLocal ToString(
npm ERR! | ^~~~~~~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate expects 1 argument, 0 provided
npm ERR! …/src/bcrypt_node.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE {anonymous}::CompareSync(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! …/src/bcrypt_node.cc:309:42: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR! 309 | Nan::Utf8String pw(info[0]->ToString());
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocalv8::String v8::Value::ToString(v8::Localv8::Context) const’
npm ERR! 3048 | V8_WARN_UNUSED_RESULT MaybeLocal ToString(
npm ERR! | ^~~~~~~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate expects 1 argument, 0 provided
npm ERR! …/src/bcrypt_node.cc:310:44: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR! 310 | Nan::Utf8String hash(info[1]->ToString());
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocalv8::String v8::Value::ToString(v8::Localv8::Context) const’
npm ERR! 3048 | V8_WARN_UNUSED_RESULT MaybeLocal ToString(
npm ERR! | ^~~~~~~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate expects 1 argument, 0 provided
npm ERR! …/src/bcrypt_node.cc: In function ‘Nan::NAN_METHOD_RETURN_TYPE {anonymous}::GetRounds(Nan::NAN_METHOD_ARGS_TYPE)’:
npm ERR! …/src/bcrypt_node.cc:330:44: error: no matching function for call to ‘v8::Value::ToString()’
npm ERR! 330 | Nan::Utf8String hash(info[0]->ToString());
npm ERR! | ^
npm ERR! In file included from /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:63,
npm ERR! from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate: ‘v8::MaybeLocalv8::String v8::Value::ToString(v8::Localv8::Context) const’
npm ERR! 3048 | V8_WARN_UNUSED_RESULT MaybeLocal ToString(
npm ERR! | ^~~~~~~~
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/v8.h:3048:44: note: candidate expects 1 argument, 0 provided
npm ERR! In file included from …/…/nan/nan.h:49,
npm ERR! from …/src/bcrypt_node.cc:1:
npm ERR! …/src/bcrypt_node.cc: At global scope:
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:847:43: warning: cast between incompatible function types from ‘void ()(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void ()(v8::Localv8::Object)’} to ‘node::addon_register_func’ {aka ‘void ()(v8::Localv8::Object, v8::Localv8::Value, void)’} [-Wcast-function-type]
npm ERR! 847 | (node::addon_register_func) (regfunc),
npm ERR! | ^
npm ERR! /home/rwx/.cache/node-gyp/16.16.0/include/node/node.h:881:3: note: in expansion of macro ‘NODE_MODULE_X’
npm ERR! 881 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
npm ERR! | ^~~~~~~~~~~~~
npm ERR! …/src/bcrypt_node.cc:353:1: note: in expansion of macro ‘NODE_MODULE’
npm ERR! 353 | NODE_MODULE(bcrypt_lib, init);
npm ERR! | ^~~~~~~~~~~
npm ERR! make: *** [bcrypt_lib.target.mk:115: Release/obj.target/bcrypt_lib/src/bcrypt_node.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: make failed with exit code: 2
npm ERR! gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:527:28)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Linux 5.15.0-43-generic
npm ERR! gyp ERR! command “/usr/local/bin/node” “/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js” “build” “–fallback-to-build” “–module=/home/rwx/vidly-api-node/node_modules/bcrypt/lib/binding/bcrypt_lib.node” “–module_name=bcrypt_lib” “–module_path=/home/rwx/vidly-api-node/node_modules/bcrypt/lib/binding”
npm ERR! gyp ERR! cwd /home/rwx/vidly-api-node/node_modules/bcrypt
npm ERR! gyp ERR! node -v v16.16.0
npm ERR! gyp ERR! node-gyp -v v9.0.0
npm ERR! gyp ERR! not ok

Hi.
This is a good old classic on this course. Several topics were raised about such error. You should update bcrypt. Lookup the forum, you should find those topics.

Thank you. let me try