Cannot find module 'Express'; already installed locally and globally - node.js

I have a project that is using express for the backend API. The project is working on my local machine but when I try to deploy it on a linux VM I get the error "Cannot find module 'Express'".
The steps I took to produce this error were cloning and cding into the repo, and running npm install. express is listed as a dependency in the package.json file. I tried explicitly running npm install express and npm install -g express and both said that they added and/or updated packages and did not return any errors. I also looked in the node_modules folder and there is an express folder there as well.
My package.json:
{
"name": "user-backend",
"version": "1.0.0",
"private": true,
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev-start": "nodemon server.js",
"nvm-start": "nvm use 8.11.3",
"postnvm-start": "nodemon server.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^0.18.0",
"bcryptjs": "^2.4.3",
"body-parser": "^1.18.3",
"cors": "^2.8.4",
"dotenv": "^6.0.0",
"express": "^4.16.3",
"faker": "^4.1.0",
"helmet": "^3.12.1",
"jsonwebtoken": "^8.3.0",
"mongoose": "^5.2.2",
"morgan": "^1.9.0",
"request": "^2.88.0",
"slugify": "^1.3.1",
"validator": "^10.4.0"
},
"devDependencies": {
"nodemon": "^1.18.1"
}
}
Any help would be greatly appreciated. Thank you

This ended up being a simple syntax error in my import ("Express" vs "express")

Related

Can't install NPM in cpanel with sharp any version

I am using sharp to convert images to webp (project developped with angular + nodejs), it works only localy because i have error when i deploy using Cpanel (nodejs apps), i checked with different versions (latest 0.31.1, 0.27.0 and also 0.23.0 ..). I can install sharp if only i remove it from dependencies :
"dependencies": {
"sharp": "^0.27.0"
Have you any idea ?
Thanks.
Here is error :
npm WARN lifecycle The node binary used for scripts is /home/xxx/nodevenv/nodejs_test/10/bin/node but npm is using /opt/alt/alt-nodejs10/root/usr/bin/node itself. Use the --scripts-prepend-node-path option to include the path for the node binary ....
Here is my package.json :
{
"name": "mysqlproject",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"sharp": "^0.27.0",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"file": "^0.2.2",
"material-icons": "^0.6.1",
"multer": "^1.4.4",
"mysql": "^2.18.1",
"node-fetch": "^3.2.3",
"nodemailer": "6.6.3",
"nodemon": "^2.0.7",
"request": "^2.88.2",
"typeface-open-sans": "^1.1.13",
"typeface-roboto": "^1.1.13"
},
"browser": {
"fs": false,
"path": false,
"os": false,
"crypto": false
}
}

How do I safely run 'npm audit fix --force'?

I want to run the npm command 'npm audit fix --force', because I already ran 'npm audit fix' and there are still vulnerabilities, is there a way I can somehow fix all the vulnerabilities without breaking my program, I tried running the command in a cloned file to see what damage it would cause, and you guessed it, it broke.
Is there a way I can somehow modify the package.json and package-lock.json to fix this?
Here is my package (making a login and registration system via mongodb)
{
"name": "passport-local-register-login",
"version": "2.0.0",
"description": "Node.js authentication with Passport",
"main": "app.js",
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"connect-flash": "^0.1.1",
"ejs": "^2.6.1",
"express": "^4.16.4",
"express-ejs-layouts": "^2.5.0",
"express-session": "^1.15.6",
"mongoose": "^5.7.5",
"passport": "^0.4.0",
"passport-local": "^1.0.0"
},
"devDependencies": {
"nodemon": "^1.18.9"
}
}

Webpack keeps on creating dist folder?

I'm working on server side coding using Node.js. I've noticed Webpack (I think) is randomly creating dist folder with .dev.js files. I'm not running build, I'm starting server with nodemon npm run start.
Image of what I'm talking about
package.json
{
"name": "card-match-game-server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon index.js"
},
"author": "",
"license": "ISC",
"devDependencies": {
"nodemon": "^2.0.6"
},
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"jsonwebtoken": "^8.5.1",
"lodash.shuffle": "^4.2.0",
"mongoose": "^5.11.6",
"socket.io": "^3.0.4"
}
}
Can someone clarify why those dist folders are auto generated and the purpose of it? Thanks.

node server.js gives error -> Cannot find module '../wireprotocol/2_4_support'

To clarify the issue:
I have built a node server, which works fine. But on pushing to git and cloning elsewhere, it doesn't work in the new location.
Cleared node_modules, and tried npm install.
gitignore has only node_modules directory in it.
package.json contains the following
{
"name": "node-todo-api",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node server/server.js",
"test": "export NODE_ENV=test || SET NODE_ENV=test && mocha server/**/*.test.js",
"test-watch": "nodemon --exec 'npm test'"
},
"engines": {
"node": "6.2.2"
},
"author": "",
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.15.2",
"express": "^4.14.0",
"jsonwebtoken": "^8.3.0",
"lodash": "^4.15.0",
"mongodb": "^2.2.5",
"mongoose": "^4.5.9",
"validator": "^5.6.0"
},
"devDependencies": {
"expect": "^1.20.2",
"mocha": "^5.2.0",
"nodemon": "^1.10.2",
"supertest": "^3.1.0"
}
}

Heroku cannot find module 'Sequelize'

I'm getting the error heroku cannot find module 'Sequelize' when the server runs npm start on index.js file. When I run it locally by command heroku local it works fine. What I don't understand is that there is no module called 'Sequelize' in my project. It's called in lower case sequelize. Here's my package.json
{
"name": "anonbay",
"version": "1.0.0",
"description": "social network app",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "saud",
"license": "ISC",
"dependencies": {
"bcrypt-nodejs": "0.0.3",
"body-parser": "^1.16.0",
"express": "^4.14.0",
"express-graphql": "^0.6.3",
"express-session": "^1.15.3",
"graphql": "^0.9.1",
"graphql-subscriptions": "^0.3.1",
"lodash": "^4.17.4",
"mongoose": "^4.7.7",
"pg": "^6.1.2",
"pg-hstore": "^2.3.2",
"sequelize": "^3.30.4",
"subscriptions-transport-ws": "^0.6.0"
}
}
My bad I was importing 'Sequelize' with uppercase. It works locally but it seems heroku is case sensitive. Changed it to 'sequelize' and it worked

Resources