Require cannot find custom module after moving to server - node.js

I am trying to deploy a node app that runs fine on my local Mac Lion, however. On the virtual Ubuntu box, it is giving an error:
module.js:340
throw err;
^
Error: Cannot find module '../lib/review'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/websites/Node_apps/min-driver-node/routes/reviews.js:2:14)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
There is my own custom modules in ./lib folder that are 'require' from the routes as following:
var Review = require('../lib/review');
What have I tried?
Ensured the same Node.js version running via
nvm(https://github.com/creationix/nvm)
Removed node_modules just to
re-install them by running "npm install"
Why is the 'require' unable import the custom modules from 'lib' folder on Server while works on Mac? Thank You

Try using the complete path to the file instead of using the relative path (../).

It looks like the 'require' module is case sensitive on Ubuntu but not on Mac....all my modules in lib folder starts with upper case(i.e. lib/Review.js), but when required in other parts of the code, it is lower case - require('../lib/review'). This is causing issue on Ubuntu but not on Mac lion. By updating the code to 'require('../lib/Review'), solves the problem
Is this a bug and i should be reporting this?

Try set file permissions chmod -R 744 '../lib/review'

Related

Bindings Module did not self-register

I'm having this problem when I try to run my node.js app. I have tried to remove my node_modules folder and then npm install but that doesn't work. Any idea?
Thanks!
This is the error :
node_modules/bindings/bindings.js:83
throw e
^
Error: Module did not self-register.
at Error (native)
at Object.Module._extensions..node (module.js:440:18)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at bindings (/.../.../react-rpi/node_modules/bindings/bindings.js:76:44)
at Object.<anonymous> (/.../.../react-rpi/node_modules/epoll/epoll.js:1:99)
It is possible that you are trying to run a native module that did not compile for your architecture / peripherals.
Please comment those packages out (raspberry-gpio, libusb and others) and try to work it out from there.

nodejs error (nodeproxy.node) setting up Mozilla Open Badges

I've been going through a tutorial for setting up a self hosted version of Mozilla Open Badges using this guide https://github.com/mozilla/openbadges-badgekit/wiki/BadgeKit-Self-Hosting-Guide
I've come across many problems with it, under a Windows 7 environment. Some of these I've been able to fix as I've gone along, e.g. setting environment variables and installing other software as required. There is a lot of stuff that the guide doesn't specifically mention, but that's just a learning curve I guess.
However when I've got towards the end of the tutorial and am trying to run 'openbadges-badgekit' it fails. I get this error and haven't been able to find a fix:
C:\xampp\htdocs\openbadges-badgekit\app>node index.js
module.js:339
throw err;
^
Error: Cannot find module '../build/Release/nodeproxy.node'
at Function.Module._resolveFilename (module.js:337:15)
at Function.Module._load (module.js:287:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object. (C:\xampp\htdocs\openbadges-badgekit\node_modules\clie
nt-sessions\node_modules\node-proxy\lib\node-proxy.js:1:90)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
Does anyone know how to resolve this? I've done npm install and all the other steps of the tutorial.
Environment:
Windows 7 (Microsoft Windows [Version 6.1.7601])
npm 2.14.7
node v4.2.3

Error: Cannot find module 'ms'

I've been trying to get my app running for a few days now, but keep getting errors. I'm closer than I have been so far, but am now getting the "Cannot find module error" when trying to launch my application.
Below is the error I'm getting now.
C:\MY-APP\dataService>node dataAPI.js
module.js:338
throw err;
^
Error: Cannot find module 'ms'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (C:\MY-APP\node_modules\express\node_modules\debug
\debug.js:14:20)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
I also searched the forums for an answer to this question and found this post on Stack Overflow, but it was in reference to Azure, which I'm not using.
I'm new to Node.js so forgive me if I sound like I don't know what I'm talking about because that's largely the truth.
please see this Link :
https://www.npmjs.com/package/ms
and use :
npm install ms -S
on your project its automatically save ms package to the node-module.
Just in case the above answer doesn't work for someone with this problem: I had this same problem when trying to run tests using the Puppeteer framework. I ended up having to cd into the node_modules/puppeteer folder and manually running npm install for it to finally work in my case.

ERROR: Cannot find module './lib/base/events'

I'm getting the error ERROR: Cannot find module './lib/base/events' when trying to run Ghost 0.5.0.
I keep uninstalling and installing events even with the -g flag, but it doesn't pick it up. I'm stuck here and don't know what else to do.
more info:
Error: Cannot find module './lib/base/events'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Bookshelf.initialize (/usr/share/nginx/www/lm-ghost-0.5/node_modules/bookshelf/bookshelf.js:28:16)
at Bookshelf (/usr/share/nginx/www/lm-ghost-0.5/node_modules/bookshelf/bookshelf.js:10:31)
at Object.<anonymous> (/usr/share/nginx/www/lm-ghost-0.5/core/server/models/base.js:24:18)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
SO, I installed the bookshelf module manually but now get another error:
/usr/share/nginx/www/lm-ghost-0.5/node_modules/downsize/node_modules/xregexp/xregexp-all.js:1396
L: "0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D1
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Wow, OK, now I installed xregexp manually and moving along...
Just for the record, anybody else comes across this issue, I had to basically watch out for any error and whenever I saw node_modules/XXX I simply manually installed module XXX and continued to do so for all errors until it worked.

Cannot find module 'express-session'

I am trying to run sparkleshare-dashboard. This is an open source project you can see it here
https://github.com/tommyd3mdi/sparkleshare-dashboard.
The project use Node.JS and Redis and i have no experience with both. I did setup the environment as described in the help file and then i try to run file app.js from command line using 'node' command but i got this error.
Error: Cannot find module 'express-session'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (E:\Imports\sparkleshare-dashboard\app.js:5:15)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Maybe i didn't provide enough information but i am expecting that may be some of you guys has done some work on sparkleshare project and may someone can help me in this.
The reason is likely your ">" operator for express in the package.json.
Express 4.0 is out now and the complete middleware concept changed.
You need to install these middlewares manually.
"express-session" is one of the 4.0 middlewares.
I recommend to read
http://scotch.io/bar-talk/expressjs-4-0-new-features-and-upgrading-from-3-0
and
https://github.com/visionmedia/express/wiki/Migrating-from-3.x-to-4.x
Additionally some users were confused that the github repo is named just "session" but
npm install express-session
is correct.
Make sure you have installed express-session. You can check for the directory inside your node_modules folder or you can also chekc your dependencies inside your package.json file

Resources