Getting error while using Express with Node.js - node.js

I wrote a small program using npm express. while I am running the program i am getting error like below.(I am new to node.js)
module.js:340
throw err;
^
Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (C:\Users\node\node_modules\app.js:1:77)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)

Inside your app you obviously require the express module, probably like this:
var express = require('express');
For this line to work you need to install Express into the local context of your application. To do so run
$ npm install express
inside your application's folder. This will (if it does not yet exist) create a folder node_modules where all your dependencies go.
Additionally, I'd suggest that you put Express into your package.json inside the dependencies block, such as:
"dependencies": {
"express": "3.1.0"
}
Of course, you can adjust the version number to whatever version you use. Once you've done this for all of your dependencies, you can install them at once by simply running
$ npm install
That should fix it.
PS: It does not matter for this scenario whether you installed Express globally or not. A global installation is only good for having the express bootstrapper available system-wide. The require function always only searches within the local application context.

Related

Meteor error with windows 8.1: your application has errors. waiting for file change

I am trying to create & rum meteor app on win 8.1 pc
what I done, I install meteor using official Meteor installer
I run following commands at desired path
meteor create myapp
this was ok
then cd myapp
this was also ok
but when I run command meteor to run the app, I got following result with error
[[[[[ ~\F\meteor\resolutions ]]]]]
=> Started proxy.
=> Started MongoDB.
=> Errors prevented startup:
While loading plugin `compileTemplatesBatch` from packag
module.js:338:15: Cannot find module
'../modules/es6.object.get-own-property-descriptor'
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> (C:\Users\Dinesh
Singh\AppData\Local\.meteor\packages\templating\1.1.7\pl
Batch.os\npm\node_modules\meteor\ecmascript-runtime\node_mo
pt-runtime\node_modules\meteor-ecmascript-runtime\node_modu
t.js:12:1)
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)
at require (module.js:380:17)
at Object.<anonymous> (C:\Users\Dinesh
Singh\AppData\Local\.meteor\packages\templating\1.1.7\pl
Batch.os\npm\node_modules\meteor\ecmascript-runtime\node_mo
pt-runtime\node_modules\meteor-ecmascript-runtime\server.js
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)
at require (module.js:380:17)
at npmRequire (C:\tools\isobuild\bundler.js:1665:14)
at Module.useNode (packages/modules-runtime.js:453:20)
at fileEvaluate (packages/modules-runtime.js:157:20)
at require (packages/modules-runtime.js:92:16)
at meteorInstall.node_modules.meteor.ecmascript-runtime.
(packages/ecmascript-runtime.js:24:18)
at fileEvaluate (packages/modules-runtime.js:158:9)
at require (packages/modules-runtime.js:92:16)
at packages/ecmascript-runtime.js:2832:15
at packages/ecmascript-runtime.js:2845:3
=> Your application has errors. Waiting for file change.
I search over the but didn't find specific result for windows.
As the latest version got this problem, use previous version to create a sample app like this,
meteor create --release 1.2.1 test-app
cd test-app
meteor
found on : https://github.com/meteor/meteor/issues/6609
Based on answers from this issue https://github.com/meteor/meteor/issues/6609 you need to :
Go to "C:\Users\username\AppData\Local.meteor\packages"
Move the packages causing the issue to another folder as you won't be able to delete them on windows due to long file names (templating, templating-tools, ecmascript, standard-minifier-css)
once the file deleted you can run "meteor npm install" then "meteor"
I have tested and it works for me.
I just removed all packages (withaout meteor) from AppData\Local.meteor\packages and run my app again. Meteor downloaded all packeges and now it is working.
The following fix worked for me:
Uninstall meteor from Windows (Programs and Features).
Install meteor (https://www.meteor.com/install)
Create a new Project (https://www.meteor.com/tutorials/blaze/creating-an-app)

Gulp error traversal module

I am running a Homestead virtual machine and when I run Gulp I got this error message.
I read so many topics on the web and I tried these, but not working.
vagrant#homestead:~/Code/crm.activix.local$ gulp module.js:339
throw err;
^
Error: Cannot find module '../traversal'
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.<anonymous> (/home/vagrant/Code/crm.activix.local/node_modules/laravel-elixir/node_modules/babelify/node_modules/babel-core/lib/transformation/plugin-pass.js:19:18)
at Module._compile (module.js:425:26)
at Object.Module._extensions..js (module.js:432:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Module.require (module.js:366:17)
Homestead and Gulp is a strange thing. I've never gotten it to work properly when running gulp and npm commands inside my Homestead VM.
I use windows, so I have to use gith bash from windows to make gulp/npm stuff work properly. I believe the issue has to do with windows pathing. Take this path from the laravel-elixir install
myproject\node_modules\laravel-elixir\node_modules\gulp-util\node_modules\gulplog\node_modules\glogg\node_modules\sparkles
So dependencies have hteir own dependencies, who have their own dependencies, etc.
When you try to install this, and it has to "mirror" the files on your windows system, it just breaks. At least that's what I think happens.
So to be safe, install node.js on your computer, and run all gulp/npm commands from there. At least that's what I need to do.

Getting meteor 0.9.2 build to work OSX -> Linux

I was using meteor 0.8.x but recently tried to upgrade to 0.9.2. It works locally but I'm not having any luck with meteor bundle or meteor build
First I got this error
/var/projects/myproject/live/bundle/programs/server/boot.js:198
}).run();
^
Error: /var/projects/myproject/live/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at bindings (/var/projects/myproject/live/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
at Object.<anonymous> (/var/projects/myproject/live/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/bcrypt.js:1:97)
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)
Things I've tried
Made sure live/bundle/programs/server/node_modules does not exist before starting.
ran npm install in live/bundle/programs/server as the README says to
Things I noticed. There's no bcrypt deps in live/bundle/programs/server/package.json. In 0.8.2 I had commands to install both fibers and bcrypt manually but apparently I don't need the fibers one anymore. It looks like I do need the bcrypt one but it's in a different location than it used to be.
I don't see anything in the docs about needing to go to /var/projects/myproject/live/bundle/programs/server/npm/npm-bcrypt and install bcrypt. I can manually delete it but am I doing something wrong?
Like I said I'm already installing it where 0.8.2 needed it in programs/server. Should I be manually installing in program/server/npm/npm-bcrypt? Should I add that to my list of places to ignore
I put that in just to try it and so now I get this error
/var/projects/myproject/live/bundle/programs/server/node_modules/fibers/future.js:173
throw(ex);
^
Error: Cannot find module 'websocket-driver'
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> (/var/projects/myproject/live/bundle/programs/server/npm/ddp/node_modules/faye-websocket/lib/faye/websocket.js:8: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)
Is that yet another module I need to manually install? I'm getting the impression I'm just doing something fundamentally wrong.
I've got the following meteor packages
.meteor/packages
# Meteor packages used by this project, one per line.
#
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.
standard-app-packages
audit-argument-checks
iron:router#0.9.3
meteorhacks:npm#1.2.0
npm-container
packages.json
{
"semver": "2.3.1",
"winston": "0.7.3",
"winston-loggly": "1.0.1"
}
note: I'm developing/bundling on OSX but deploying on Ubuntu.
I had similar problems - I posted my solution over on DO
https://www.digitalocean.com/community/tutorials/how-to-deploy-a-meteor-js-application-on-ubuntu-14-04-with-nginx?comment=19780
UPDATE - Here is the answer from that forum:
If anyone else has an issue like this with bcrypt - the app probably has its own copy in
/home/yourapp/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/
delete that noise. Then do this.
cd /home/yourapp/bundle/programs/server
npm install bcrypt
Then
cp -r /home/yourapp/bundle/programs/server/node_modules/bcrypt /home/yourapp/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/
then start your app and enjoy the meteory goodness.
On the general problem of . . .
(for those stumbling here via Google)
Cannot find module 'MODULE-NAME'
or
Can't find npm module 'MODULE-NAME'
If you've recently added or removed packages while the application is running, try stopping and restarting your meteor application.
// stop ( "CTRL+C" in terminal that launched process )
$ kill `ps ax | grep '[m]eteor' | awk '{print $1}'`
// start
$ meteor

Node.JS cannot find module 'xml2js' (Windows)

OS: Windows 7 64-bit
Need to do parsing xml-file using Node.js.
Using a library for parsing xml2js.
Xml2js installed using the command "npm install xml2js".
However, if you run the code:
var fs = require ('fs'), xml2js = require ('xml2js');
var parser = new xml2js.Parser ();
fs.readFile ('<path to the xml-file>', function (err, data) {
parser.parseString (data, function (err, result) {
console.dir (result);
console.log ('Done');
});
});
an error:
module.js:340
throw err;
^
Error: Cannot find module 'xml2js'
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> (<путь до js-файла>:3: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 Function.Module.runMain (module.js:497:10)
Tell me, please, how to solve the problem?
I was also facing the same issue. Here's what I did:
Install the module using following:
$ npm install -g *module_name*
Then go to any parent dir of your project dir (it can be project dir itself) and run the following command:
$ npm link *module_name*
Make sure that the directory ./node_modules/xml2js exists.
When you run npm install somemodule at D:/test, it will be stored to D:/test/node_modules/somemodule, then you can require this module in D:/test/*.js, and you can not require it at D:/other/place/*.js. If you hope the module can be required anywhere you should run:
npm install somemodule -g
I had a similar issue and even tried the fix mentioned by Lellansin, but it didnt help. There were some issues with npm cache and I had to clear it using the command:
npm cache clean
And it worked for me.

Unexpected String Error Require Express Not Getting Found in JS App file

I have a js web app that is written in express, node, socket io and coffeescript. I am trying to get the local server started on my local machine.
I went to the directory that contained the package.json file and ran npm install to install all the dependencies which included express.
when I run npm list I do see express there.
When I try to start the app with
node app.coffee inside the directory of where the app.coffee is located
its given me this error
exports, require, module, __filename, __dirname) { express = require 'express'
^^^^^^^^^
SyntaxError: Unexpected string
at Module._compile (module.js:439:25)
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)
at startup (node.js:119:16)
at node.js:901:3
I made sure I have node by doing
which node and I installed coffee script on my machine with
sudo npm install -g coffee-script
I even tried
coffee app.coffee
I am not sure what else I need to check. The app.coffee is in my nodejs folder.
Simply run
coffee app.coffee -n
You can find out more info here

Resources