I am trying to create a https endpoint that uses bcrypt to compare the users password with the database password. I have downloaded bcrypt with version 5.1.0 through the atlas ui and it shows up on the dependencies. However, when i try to import the library i get an error.
I use this to import bcrypt
const bcrypt = require('bcrypt');
and i get this error
failed to execute source for 'node_modules/bcrypt/bcrypt.js': TypeError: Value is not an object: undefined
Have you found a solution for it, I am facing the same issue @Tamothee_N_A
I have found a solution.
This error occurs because the
bcrypt package requires native dependencies that must be compiled specifically for the environment where the code is running. Since MongoDB Realm runs in a serverless environment, it does not provide access to the native dependencies required by
bcrypt, causing the error you are seeing.
bcrypt in a MongoDB Realm function, you will need to find an alternative implementation that does not rely on native dependencies. One such implementation is
bcrypt algorithm and does not require any native dependencies.
bcryptjs, you can simply replace the
bcrypt import statement in your code with:
const bcrypt = require('bcryptjs')
this should solve the issue!
(Shout out to ChatGPT for the solution)