I\'m encountering a strange behaviour with instanceof in NodeJs. I\'m trying to creating a module which throws exceptions which can be caught by consuming modules and dealt
FOUND IT
To use your example, in file one.js
I had:
var mod = require('mymodule');
but in another file two.js
I had:
var mod = require('Mymodule');
and everything seemed to work exactly the same, except when you compared an error created from one.js
using instanceof
in two.js
!.
Absurdly, node.js allows you to do a case-insensitive require, except it's not really case-insensitive, it actually requires your file twice, which is why instanceof
returns false
– the constructors are two different functions from two different module instances!
TL;DR
Make sure all your require
strings are case-consistent.