Run selenium jar on travis CI from protractor node_modules folder - javascript

I am setting up Travis in order to execute e2e tests through protractor.
On my protractor.config.js I have the following:
seleniumServerJar: './node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.5.0.jar'
So actually it refers to the selenium jar included by default inside the protractor plugin.
Then I use the plugin gulp-protractor in order to execute the tests pointing to the right protractor.config.js.
Locally everything works like a charm.
But when trying to execute this on Travis, I am getting the following error:
[18:59:15] I/launcher - Running 1 instances of WebDriver [18:59:15]
E/local - Error code: 135 [18:59:15] E/local - Error message: No
selenium server jar found at
/home/travis/build/quirimmo/Qprotractor/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.5.0.jar.
Run 'webdriver-manager update' to download binaries.
Any idea why it looks like it cannot retrieve the jar from the node_modules subfolder please?
Here my .travis.yml configuration, which is actually pretty simple:
sudo: required
dist: trusty
addons:
chrome: stable
language: node_js
node_js:
- '6.11'
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- sleep 3
install:
- npm install
script:
- echo "Triggered!"
- gulp protractor-test
Thanks a lot, any help would be really appreciated!
p.s. I already did it on other projects with Travis running manually the webdriver-manager and then pointing to the selenium address from the protractor.config.js, but I don't want that solution and I want to go on through the seleniumServerJar property, because in this way it will run everything alone without any need of starting manually the webdriver-manager

Fixed in your repo. You should change your before_script to below
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- sleep 3
- npm install -g webdriver-manager
- webdriver-manager update
- webdriver-manager start &
- sleep 3
And then in your protactor.confg.js add the seleniumAddress
exports.config = {
seleniumAddress: 'http://127.0.0.1:4444/wd/hub/',
specs: [
'./test/base-protractor.spec.js',
'./test/element-finder.spec.js',
'./test/element-array-finder.spec.js'
],
onPrepare: function() {
require('./index');
}
};

Posting here the answer if this could be useful for someone else in the future.
As explained very well in this link:
https://github.com/angular/protractor/issues/3225
You need to manually trigger the installation of the selenium server.
So in the install block of your travis file, you can simply add this:
install:
- npm install
- node_modules/protractor/bin/webdriver-manager update
And then inside the protractor.config.js, grab the current version of the installed selenium server:
const SELENIUM_FOLDER = './node_modules/protractor/node_modules/webdriver-manager/selenium';
const fs = require('fs');
let res, seleniumVersion;
fs.readdirSync(SELENIUM_FOLDER).forEach(file => {
res = file.match(/selenium-server-standalone-(\d{1}.\d{1}.\d{1}).jar/i);
if (res) {
seleniumVersion = res[1];
}
})
if (!seleniumVersion) {
throw new Error('No selenium server jar found inside your protractor node_modules subfolder');
}
And then execute it in this way:
seleniumServerJar: `./node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-${seleniumVersion}.jar`
I hope this will help someone else avoiding to lose few hours of time against this issue!

Related

"gatsby develop" cannot run in Mac M1

Iam using gatsby 3.1.2 version with strapi as CMS, were i could not able to run gatsby develop and it is throwing this below mentioned error. Also attached the screenshot from terminal.
ERROR
Invalid options object. Ignore Plugin has been initialized using an options object that does not match the API schema.
- options should be one of these:
object { resourceRegExp, contextRegExp? } | object { checkResource }
Details:
* options misses the property 'resourceRegExp'. Should be:
RegExp
-> A RegExp to test the request against.
* options misses the property 'checkResource'. Should be:
function
-> A filter function for resource and context.
System Informations:
Gatsby CLI version: 4.0.0
Gatsby version: 3.14.6
Node version: v14.18.0
NPM version: 6.14.15
In case it helps anyone, prior to this error (where it just doesn't run, without throwing any errors or clues) I had a hard time with npm install, but I was able to fix that by running the following:
brew reinstall vips
xcode-select --install
brew install gcc
brew reinstall vips
brew info vips
npm i

Expo "Cannot find module 'color-convert'" Problem :(

I have problem! I just write terminal npm start and it shows:
Starting project at /home/pc/Documents/Projects/Mobile/weather_app
Developer tools running on http://localhost:19002
Cannot find module 'color-convert'
Require stack:
- /home/pc/Documents/Projects/Mobile/weather_app/node_modules/ansi-styles/index.js
- /home/pc/Documents/Projects/Mobile/weather_app/node_modules/chalk/index.js
- /home/pc/Documents/Projects/Mobile/weather_app/node_modules/#babel/code-frame/node_modules/#babel/highlight/lib/index.js
- /home/pc/Documents/Projects/Mobile/weather_app/node_modules/#babel/code-frame/lib/index.js
- /home/pc/Documents/Projects/Mobile/weather_app/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js
- /home/pc/Documents/Projects/Mobile/weather_app/node_modules/metro/src/node-haste/DependencyGraph.js
- /home/pc/Documents/Projects/Mobile/weather_app/node_modules/metro/src/Bundler.js
- /home/pc/Documents/Projects/Mobile/weather_app/node_modules/metro/src/IncrementalBundler.js
- /home/pc/Documents/Projects/Mobile/weather_app/node_modules/metro/src/index.js
- /usr/lib/node_modules/expo-cli/node_modules/#expo/dev-server/build/metro/importMetroFromProject.js
- /usr/lib/node_modules/expo-cli/node_modules/#expo/dev-server/build/HermesBundler.js
- /usr/lib/node_modules/expo-cli/node_modules/#expo/dev-server/build/MetroDevServer.js
- /usr/lib/node_modules/expo-cli/node_modules/xdl/build/start/startDevServerAsync.js
- /usr/lib/node_modules/expo-cli/node_modules/xdl/build/internal.js
- /usr/lib/node_modules/expo-cli/node_modules/xdl/build/index.js
- /usr/lib/node_modules/expo-cli/build/exp.js
- /usr/lib/node_modules/expo-cli/bin/expo.js
Please, help me fixing the problem!
npm version: 8.3.1
node version: v17.3.0
expo version: 5.2.0
I am not quite sure what might have caused your problem but you can try the following fixes and see if any of them works for you:
$ npm i color-convert to make sure you have installed the module color-convert.
$ expo r -c to clear cache and restart your app, it could be that your app has not updated that cache after installing the module color-convert.
You may also delete node-modules directory and run again npm i or yarn to download and all the modules and their correct dependencies.

How to terminate CircleCI after running tasks?

My test passes as good as expected but the process hangs on the running status! is it a side effect of the background process? how to solve this problem?
(I need to run nodeJs as a background process to testing my app)
my config file:
version: 2.1
orbs:
node: circleci/node#1.1.6
jobs:
build-and-run:
executor:
name: node/default
steps:
- checkout
- node/with-cache:
steps:
- run: npm install
- run:
name: initial run
command: npm run start-server-for-test && sleep 5
background: true
- run: npm run ci-test
workflows:
build-and-run:
jobs:
- build-and-run
This doesn't looks like a CircleCI error. Run this same commands in your machine and try if it works. Also you can run jobs with ssh enabled in CircleCI and login to the machine and execute the commands, in that way you could troubleshoot.

How to access chromedriver logs for Protractor test

I have seen that chromedriver can output a logfile (https://sites.google.com/a/chromium.org/chromedriver/logging)
This page shows how to set this up when executing the exe directly:
chromedriver.exe --verbose --log-path=chromedriver.log
I cannot figure out how to set this up in Protractor however
My current protractor.conf.js
require('babel/register');
exports.config = {
framework: 'jasmine2',
seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar'
};
From #alecxe's answer below and protractor's browser setup docs I tried adding the following (with and without --s) but with no apparent effect:
capabilities: {
browserName: "chrome",
chromeOptions: {
args: [
"--verbose",
"--log-path=chromedriver.log"
]
}
}
I also tried specifying an absolute path (log-path=/chromedriver.log) which also didn't work.
You can always start up your own instance of chromedriver in a separate process and tell Protractor to connect to that. For example, if you start chromedriver with:
chromedriver --port=9515 --verbose --log-path=chromedriver.log
Then you could use a configuration file for Protractor like so:
exports.config = {
seleniumAddress: 'http://localhost:9515',
capabilities: {
'browserName': 'chrome'
},
specs: ['example_spec.js'],
};
We use a shell script to add chromedriver logging, among other checks. You can then point protractor at the shell script:
protractor config:
// When running chromedriver, use this script:
chromeDriver: path.resolve(topdir, 'bin/protractor-chromedriver.sh'),
bin/protractor-chromedriver.sh
TMPDIR="/tmp"
NODE_MODULES="$(dirname $0)/../node_modules"
CHROMEDRIVER="${NODE_MODULES}/protractor/selenium/chromedriver"
LOG="${TMPDIR}/chromedriver.$$.log"
fatal() {
# Dump to stderr because that seems reasonable
echo >&2 "$0: ERROR: $*"
# Dump to a logfile because webdriver redirects stderr to /dev/null (?!)
echo >"${LOG}" "$0: ERROR: $*"
exit 11
}
[ ! -x "$CHROMEDRIVER" ] && fatal "Cannot find chromedriver: $CHROMEDRIVER"
exec "${CHROMEDRIVER}" --verbose --log-path="${LOG}" "$#"
According to the protractor's source code, chromedriver service is started without any arguments and there is no direct way to configure the arguments. Even though the chromedriver's Service Builder that protractor uses actually has an ability to specify the verbosity and the log path:
var service = new chrome.ServiceBuilder()
.loggingTo('/my/log/file.txt')
.enableVerboseLogging()
.build();
Old (incorrect) answer:
You need to set the chrome arguments:
capabilities: {
browserName: "chrome",
chromeOptions: {
args: [
"verbose",
"log-path=chromedriver.log"
]
}
},
See also:
Viewing outstanding requests
Since, the previous answer by #P.T. didn't work for me on Windows 7, I started with his suggestions and got it working on Windows. Here is a working solution for Windows 7 users.
STEP 1: Install BASH and JQ and confirm they are working on your Windows box
Download bash (for Windows 10
https://itsfoss.com/install-bash-on-windows/ ; for Windows 7
download latest here:
https://sourceforge.net/projects/win-bash/files/shell-complete/latest/ ; for Windows Server 2012 or any Windows OS that already has Git installed on it, you already have a bash.exe and sh.exe installed at C:\Program Files\Git\usr\bin or C:\Program Files (x86)\Git\usr\bin already
)
Install bash - For Windows 7/ download it and extract the zip files to a directory.
Download jq (https://stedolan.github.io/jq/) and install it in the same directory location as bash
Make SURE that you add your above directory (for Windows 7- where you extracted the bash zip files to; for other applicable OSes that have git, the path it is installed at) to your PATH system environment variable.
Once the above is installed and added to your PATH, close ALL and reopen Webstorm and any CMD windows you wish to run your work in.
Test that bash is actually installed by simply typing it on a windows command prompt
C:\git\> bash .
Doing so should produce a bash cmd prompt like this
bash$
STEP 2: Add Custom Files for Redirecting Chromedriver to user Debug Logging
Add the following files to the top level of the project (wherever your protractor-conf.js is located). These files allow us to add custom debug switches to the chromedriver.exe execution.
Note that this is necessary because these switches are not exposed through protractor and cannot be done directly in the protractor.conf.js file via the chromeOptions/args flags as you would normally expect
chromedriver.cmd -- exact source shown below:
bash protractor-chromedriver.sh %*
protractor-chromedriver.sh -- exact source shown below:
TMPDIR="$(dirname $0)/tmp"
NODE_MODULES="$(dirname $0)/node_modules"
SELENIUM="${NODE_MODULES}/protractor/node_modules/webdriver-manager/selenium"
UPDATECONFIG="${SELENIUM}/update-config.json"
EXEFILENAME="$(cat ${UPDATECONFIG} | jq .chrome.last | tr -d '""')"
CHROMEDRIVER="${SELENIUM}/${EXEFILENAME##*'\\'}"
LOG="${TMPDIR}/chromedriver.$$.log"
fatal() {
# Dump to stderr because that seems reasonable
echo >&2 "$0: ERROR: $*"
# Dump to a logfile because webdriver redirects stderr to /dev/null (?!)
echo >"${LOG}" "$0: ERROR: $*"
exit 11
}
[ ! -x "$CHROMEDRIVER" ] && fatal "Cannot find chromedriver: $CHROMEDRIVER"
exec "${CHROMEDRIVER}" --verbose --log-path="${LOG}" "$#"
/tmp -- create this directory at the top level of your project (same as the location of the protractor.conf.js file.
STEP 3: Update protractor.conf.js file.
In the protractor.conf.js file, add the following line as a property in the exports.config object. As in:
exports.config = {
.. ..
chromeDriver: 'chromedriver.cmd',
.. ..
STEP 4: Launch your tests
your test should now run and if the chrome driver outputs any log information it will appear in a file called chromedriver.???.log in the tmp directory under your project.
Important caveats
This script set up assumes you install and run protractor (and the chrome driver under it) within the local node_modules directory inside your project. That is how I run my code, because I want it complete self-contained and re-generated in the build process/cycle. If you have protractor/chromedriver installed globally you should change the CHROMEDRIVER variable within the protractor-chromedriver.sh file to match your installation of protractor/chrome driver.
hope that helps.
If you're using the seleniumServerJar, in protractor.conf.js set the logfile path to wherever you want it to write the file:
seleniumArgs: [
'-Dwebdriver.chrome.logfile=/home/myUsername/tmp/chromedriver.log',
]
If you're using webdriver-manager start to run a local selenium server, you'll need to edit the webdriver-manager file:
// insert this line
args.push('-Dwebdriver.chrome.logfile=/home/myUsername/tmp/chromedriver.log');
// this line already exists in webdriver-manager, add the push to args before this line
var seleniumProcess = spawnCommand('java', args);
In case you use webdriver-manager: webdriver manager has the chrome_logs option (you can find it in its source code (in opts.ts or opts.js in the compiled code)), so you can use it something like:
webdriver-manager start --chrome_logs /path/to/logfile.txt
I'm using this as a global afterEach hook (mocha):
afterEach(() => {
browser.manage().logs().get('browser').then(function(browserLog) {
if(browserLog && browserLog.length) {
console.log('\nlog: ' + util.inspect(browserLog) + '\n');
}
});
});

Failed to load c++ bson extension

A total node noob here. I've been trying to set up a sample node app but the following error keeps popping up every time I try to run:
node app
Failed to load c++ bson extension, using pure JS version
events.js:72
throw er; // Unhandled 'error' event
^
Error: failed to connect to [#$%67890 :27017]
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:553:74)
at EventEmitter.emit (events.js:106:17)
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
at EventEmitter.emit (events.js:98:17)
at Socket.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:512:10)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:830:16
at process._tickCallback (node.js:415:13)
I guess you did not have the make tools available when you installed your mongodb library. I suggest you do
xcode-select --install (on a mac)
or sudo apt-get install gcc make build-essential (on ubuntu)
and run
rm -rf node_modules
npm cache clean
npm install
OR just npm update based on #tobias comment (after installing build-essential)
npm update
I just resolved that.
When you install the mongoose module by npm, it does not have a built bson module in it's folder. In the file node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js, change the line
bson = require('../build/Release/bson');
to
bson = require('bson');
and then install the bson module using npm.
I have sorted the issue of getting the "Failed to load c++ bson extension" on raspbian(debian for raspberry) by:
npm install -g node-gyp
and then
npm update
I was unable to solve this
until now. First of all you have to have system packages mentioned by Pradeep Mahdevu. Those are:
xcode-select --install (on a mac)
or
sudo apt-get install gcc make build-essential (on ubuntu)
Then I've installed node-gyp
npm install -g node-gyp
like datadracer said but npm update also suggested by him is risky. It update all modules, which can be dangerous (sometimes API changes between versions).
I suggest going into node_modules/mongodb/node_modules/bson directory and from there use
node-gyp rebuild
That solved the problem for me.
A common problem is that node-gyp requires Python 2.x and if your system's python points to 3.x, it will fail to compile bson, without warning. You can fix this by setting a python global key in your npm config that points to the 2.x executable on your system. For example, on Arch Linux:
npm config -g set python "/usr/bin/python2"
On WIN 8.1
It seems I used a wrong version of mongoose in my package.json file.
I removed the line "mongoose" : "^3.8.15" from package.json.
CLI:
npm install mongoose --save
Now it says "mongoose": "^4.0.6" in package.json and the error I had is gone.
I'm running Ubuntu 14.04 and to fix it for me I had to create a symlink for node to point to nodejs as described here:
nodejs vs node on ubuntu 12.04
Once I did that I re-ran these commands:
rm -rf node_modules
npm cache clean
npm install
So in my case, I first tried to check under this directory /node_modules/mongoose/node_modules/, just to confirm that I have the bson module.
I figured out that I did not have it in the first place, then I just run
npm install bson
and then
npm update
All got sorted.Tried and tested in Ubuntu.
just wanted to say I also had the error
Failed to load c++ bson extension, using pure JS version
But with none of the other errors. I tried everything and turns out the mongodb drivers that I was specifying in the package.json file was incompatible with my version of MongoDB. I changed it to my latest version which was (1.4.34) and it worked!!!
sudo npm rebuild was what fixed it for me.
I finally corrected this error by updating my mongodb dependency version to ~2.0.36 in package.json.
"dependencies": {
"consolidate": "~0.9.1",
"express": "3.x",
"mongodb": "~2.0.36",
"mongoose": "^4.1.12"
}
Unfortunately, All the above answers are only half right..
Took a long time to figure this out..
Mongoose bson install via npm throws warning and causes the error...
npm install -g node-gyp
git clone https://github.com/mongodb/js-bson.git
cd js-bson
npm install
node-gyp rebuild
This works like magic!!
For me it only take to run these commands in my api directory:
rm -rf node_modules
npm cache clean
npm install
I just ran:
sudo npm install bson
and
sudo npm update
and all become ok.
The bson extension message is just a warning, I get it all the time in my nodejs application.
Things to check:
MongoDB instance: Do you have a MongoDB instance running?
Config: Did you correctly configure Mongoose to your MongoDB instance? I suspect your config is wrong, because the error message spits out a very weird string for your mongodb server host name..
I fixed this problem on CentOS by
sudo yum groupinstall "Development Tools"
sudo npm install -g node-gyp
rm -r node_modules
npm cache clean
npm install
I fixed it by changing line 10 of:
/node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
from:
bson = require('../build/Release/bson');
to:
bson = require('bson');
I also got this problem and it caused my sessions not to work. But not to break either...
I used a mongoose connection.
I had this:
var mongoose = require('mongoose');
var express = require('express');
var cookieParser = require('cookie-parser');
var expressSession = require('express-session');
var MongoStore = require('connect-mongo')(expressSession);
...
var app = express();
app.set('port', process.env.PORT || 8080);
app.use(bodyParser);
mongoose.connect('mongodb://localhost/TEST');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
console.log('MongoDB connected');
});
app.use(cookieParser());
app.use(expressSession({
secret: 'mysecret',
cookie: {
maxAge: null,
expires: moment().utc().add('days',10).toDate(),// 10 dagen
},
store: new MongoStore({
db: 'TEST',
collection: 'sessions',
}),
Very straightforward. But req.session stayed always empty.
rm -rf node_modules
npm cache clean
npm install
Did the trick. Watch out you dont have a 'mongodb' in your package.json! Just Mongoose and connect-mongo.
Here's how I fixed the problem on Ubuntu:
ln -s /usr/bin/nodejs /usr/bin/node
npm install node-gyp
cd node_modules/mongodb/node_modules/bson
node-gyp rebuild
Inspired by #mbochynski answer, but I had to create a symbolic link first, otherwise the rebuild failed.
i was having same trouble tried so many options but in the last npm intall in my mean app folder worked.
I had this problem because I was including the node_modules folder in my Git repository. When I rebuilt the node_modules on the other system it worked. One of them was running Linux, the other OS X. Maybe they had different processor architectures as well.
I had the same problem on my EC2 instance. I think the initial cause was because I had a Node instance running when I installed Mongo. I stopped the Node service and then ran
sudo npm update
inside of the top level folder of my node project. This fixed the problem and everything was just like new
I was trying to run node on virtual machine (vagrant) shared folder. That was a problem. My host machine is Windows, installed node on Windows and worked like a charm. So if you are using virtual machine, just try to run node server on host machine.
I just had the same problem and literally nothing worked for me. The error was showing kerberos is causing the problem and it was one of the mongoose dependencies. Since I'm on Ubuntu, I thought there might be permission issues somewhere between the globally installed packages -- in /usr/lib/node_modules via sudo, and those which are on the user space.
I installed mongoose globally -- with sudo of course, and everything began working as expected.
P.S. The kerberos package now also is installed globally next to mongoose, however I can't remember if I did it deliberately -- while I was trying to solve the problem, or if it was there from the beginning.
I'm working on Docker with centOS 7, and encountered the same problem.
after looking around, and make several tries, I fixed this problem by installing mongodb, and mongodb-server
yum install mongodb mongodb-server
I don't think this is the best way to produce the minimal container. but I can limit the scope into the following packages
==============================================================================================================
Package Arch Version Repository Size
==============================================================================================================
Installing:
mongodb x86_64 2.6.5-2.el7 epel 57 M
mongodb-server x86_64 2.6.5-2.el7 epel 8.7 M
Installing for dependencies:
boost-filesystem x86_64 1.53.0-18.el7 base 66 k
boost-program-options x86_64 1.53.0-18.el7 base 154 k
boost-system x86_64 1.53.0-18.el7 base 38 k
boost-thread x86_64 1.53.0-18.el7 base 56 k
gperftools-libs x86_64 2.1-1.el7 epel 267 k
libpcap x86_64 14:1.5.3-3.el7_0.1 updates 137 k
libunwind x86_64 1.1-3.el7 epel 61 k
snappy x86_64 1.1.0-3.el7 base 40 k
For Windows 7.1, these directions helped me to fix my build environment:
https://github.com/mongodb/js-bson/issues/58#issuecomment-68217275
http://christiankvalheim.com/post/diagnose_installation_problems/
I was able to resolve by uninstalling and reinstalling monk package.
Initial install seemingly had a corrupt mongodb/bson dependency.
Followint #user1548357 I decided to change the module file itself. So as to avoid the problems pointed out by the valid comments below I included my changes in a postinstall script so that I can set it and forget it and be assured that it will run when my modules are installed.
// package.json
"scripts": {
// other scripts
"postinstall": "node ./bson.fix.js"
},
and the script is:
// bson.fix.js
var fs = require('fs');
var file = './node_modules/bson/ext/index.js'
fs.readFile(file, 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
var result = data.replace(/\.\.\/build\/Release\/bson/g, 'bson');
fs.writeFile(file, result, 'utf8', function (err) {
if (err) return console.log(err);
console.log('Fixed bson module so as to use JS version');
});
});
easily kick out the problem by just add this line both try and catch block
path: node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
bson = require('bson'); instead
bson = require('./win32/ia32/bson');
bson = require('../build/Release/bson');
That is all!!!
The only thing which helps me on Windows 7 (x64): https://stackoverflow.com/a/29714359/2670121
Reinstall node and python with x32 versions.
I spent a lot of time with this error:
Failed to load c++ bson extension
and finally, when I installed module node-gyp (for building native addons) and even installed windows SDK with visual studio - nodejs didn't recognize assembled module bson.node as a module. After reinstalling the problem is gone.
Again, What does this error mean?
Actually, it's even not error. You still can use mongoose. But in this case, instead of fast native realization of bson module, you got js-realization, which is slower.
I saw many tips like: "edit path deep inside node_modules..." - which is totally useless, because it does not solve the problem, but just turned off the error messages.

Categories