I am failing to start my node-based application on Openshift. The application starts OK locally but node's automatic deployment (on push to the remote master repo) hits a cyclic problem with the log;
DEBUG: Running node-supervisor with
DEBUG: program './app/server.js'
DEBUG: --watch '/var/lib/openshift/53dab282e0b8cdd367000131/app-root/data/.nodewatch'
DEBUG: --ignore 'undefined'
DEBUG: --extensions 'node|js|coffee'
DEBUG: --exec 'node'
DEBUG: Starting child process with 'node ./app/server.js'
DEBUG: Watching directory '/var/lib/openshift/53dab282e0b8cdd367000131/app-root/data/.nodewatch' for changes.
module.js:340
throw err;
^
Error: Cannot find module 'underscore.string'
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/lib/openshift/53dab282e0b8cdd367000131/app-root/runtime/repo/node_modules/sequelize/lib/utils.js:5:26)
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)
DEBUG: Program node ./app/server.js exited with code 8
DEBUG: Starting child process with 'node ./app/server.js'
module.js:340
throw err;
^
Error: Cannot find module 'underscore.string'
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/lib/openshift/53dab282e0b8cdd367000131/app-root/runtime/repo/node_modules/sequelize/lib/utils.js:5:26)
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)
DEBUG: Program node ./app/server.js exited with code 8
...this loop continues indefinitely, the app reports "Started" but clearly it's failed to initialize sequelize.js.
I'm a bit lost and loosing the faith in Openshift hosting at this point. I think this might be the last straw. Any advice?
Here is my app's package.json;
{
"name": "OceanLife-API",
"version": "1.1.0",
"description": "OceanLife API",
"keywords": [
"OceanLife",
"API",
"tide",
"swell",
"weather"
],
"author": {
"name": "David Branton",
"email": "oceanlife.development#gmail.com",
"url": "http://oceanlifeapi-brantapps.rhcloud.com/"
},
"homepage": "http://oceanlifeapi-brantapps.rhcloud.com/",
"repository": {
"type": "git",
"url": "https://github.com/openshift/origin-server"
},
"engines": {
"node": ">= 0.10.25",
"npm": ">= 1.3.24"
},
"dependencies": {
"express": "~3.4.8",
"sleep": "~1.1.8",
"aglio": "~1.14.0",
"sequelize": "~1.7.10",
"lodash": "~2.4.1",
"mysql": "~2.4.3",
"cheerio": "~0.17.0",
"moment": "~2.9.0",
"moment-timezone": "~0.2.5",
"tzwhere": "~1.0.0",
"line-reader": "~0.2.4"
},
"scripts": {
"lint": "./node_modules/.bin/jshint app/**/*.js",
"pretest": "npm run-script lint",
"test": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --recursive -R spec"
},
"devDependencies": {
"istanbul": "~0.3.5",
"rewire": "~2.1.3",
"sinon": "~1.12.2",
"mocha": "~2.1.0",
"nock": "~0.57.0",
"dredd": "~0.3.14",
"jshint": "~2.5.11"
},
"bundleDependencies": [],
"private": true,
"main": "./app/server.js"
}
I've come back to this recently and have managed to get it working by using the community built Node v0.12 cartridge. If you are having similar issues I'd recommend ditching the "official" Node v0.1 app cartridge and trying again.
Sweet - free hosting of my node app! :D
Related
When I tried to deploy my app to heroku, I kept getting this error in the log
2022-05-20T14:49:35.602605+00:00 app[web.1]: > node server.js
2022-05-20T14:49:35.602605+00:00 app[web.1]:
2022-05-20T14:49:35.719423+00:00 app[web.1]: node:internal/modules/cjs/loader:936
2022-05-20T14:49:35.719424+00:00 app[web.1]: throw err;
2022-05-20T14:49:35.719425+00:00 app[web.1]: ^
2022-05-20T14:49:35.719428+00:00 app[web.1]:
2022-05-20T14:49:35.719428+00:00 app[web.1]: Error: Cannot find module 'csv-parse'
2022-05-20T14:49:35.719428+00:00 app[web.1]: Require stack:
2022-05-20T14:49:35.719429+00:00 app[web.1]: - /app/server.js
2022-05-20T14:49:35.719430+00:00 app[web.1]: at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
2022-05-20T14:49:35.719431+00:00 app[web.1]: at Function.Module._load (node:internal/modules/cjs/loader:778:27)
2022-05-20T14:49:35.719431+00:00 app[web.1]: at Module.require (node:internal/modules/cjs/loader:1005:19)
2022-05-20T14:49:35.719431+00:00 app[web.1]: at require (node:internal/modules/cjs/helpers:102:18)
2022-05-20T14:49:35.719432+00:00 app[web.1]: at Object.<anonymous> (/app/server.js:6:15)
2022-05-20T14:49:35.719432+00:00 app[web.1]: at Module._compile (node:internal/modules/cjs/loader:1105:14)
2022-05-20T14:49:35.719432+00:00 app[web.1]: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
2022-05-20T15:08:40.259973+00:00 app[web.1]: Error: Cannot find module 'express'
2022-05-20T15:08:40.259974+00:00 app[web.1]: at Function.Module._resolveFilename (module.js:536:15)
2022-05-20T15:08:40.259974+00:00 app[web.1]: at Function.Module._load (module.js:466:25)
2022-05-20T15:08:40.259974+00:00 app[web.1]: at Module.require (module.js:579:17)
2022-05-20T15:08:40.259974+00:00 app[web.1]: at require (internal/module.js:11:18)
2022-05-20T15:08:40.259975+00:00 app[web.1]: at Object.<anonymous> (/app/server.js:5:17)
2022-05-20T15:08:40.259975+00:00 app[web.1]: at Module._compile (module.js:635:30)
2022-05-20T15:08:40.259975+00:00 app[web.1]: at Object.Module._extensions..js (module.js:646:10)
2022-05-20T15:08:40.259975+00:00 app[web.1]: at Module.load (module.js:554:32)
2022-05-20T15:08:40.259976+00:00 app[web.1]: at tryModuleLoad (module.js:497:12)
I am pretty sure the node.js application can successfully run locally and I have installed all the necessary packages in dependencies inside package.json. Not sure how to fix it....
Here is my package.json
{
"name": "Netflix User Study Framework",
"version": "1.0.0",
"description": "Encode username into prolific id",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
},
"engines": {
"node": "8.9.3"
},
"repository": {
"type": "git",
"url": "git+https://github.com/amyhua/basic-website-template-node.git"
},
"author": "YOUR NAME GOES HERE",
"bugs": {
"url": "https://github.com/amyhua/basic-website-template-node/issues"
},
"homepage": "https://github.com/amyhua/basic-website-template-node#readme",
"dependencies": {
"aws-sdk": "^2.1139.0",
"csv-parser": "^3.0.0",
"csv-stringify": "^6.0.5",
"express": "^4.14.0",
"generate-unique-id": "^2.0.1",
"http": "0.0.0",
"multer": "^1.4.4",
"nodemon": "^1.11.0",
"os": "^0.1.2"
}
}
Also, I set up a .env file with PORT # on 3000.
I am trying IBM Watson's Speech to Text API. While running my NodeJS app I get this.
I am using line-in package for streaming the input audio data in output, in addition to IBM Watson's SpeechToText package.
I tried removing node_modules and $ npm install and $ npm rebuild. Nothing worked.
node app.js
internal/modules/cjs/loader.js:718
return process.dlopen(module, path.toNamespacedPath(filename));
^
Error: Module did not self-register.
at Object.Module._extensions..node (internal/modules/cjs/loader.js:718:18)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (F:\Topgear\SpeechToText\node_modules\line-in\index.js:2:20)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)```
package.json
{
"name": "SpeechToText",
"version": "1.0.0",
"description": "",
"main": "app.js",
"dependencies": {
"dotenv": "^8.0.0",
"line-in": "^0.1.2",
"watson-developer-cloud": "^4.0.1"
},
"devDependencies": {},
"scripts": {
"test": "mocha"
},
"keywords": [],
"author": "Nikhilesh AS",
"license": "ISC"
}
I am getting the following error on executing command: npm start
Cannot find module 'loadash'
at Function.Module._resolveFilename (module.js:538:15)
at Function.Module._load (module.js:468:25)
at Module.require (module.js:587:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (<Path...>/data/dbConnector.js:3:1)
at Module._compile (module.js:643:30)
at loader (<Path...>\node_modules\babel-register\lib\node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (<Path...>\node_modules\babel-register\lib\node.js:154:7)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
at Module.require (module.js:587:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (<Path...>/data/resolvers.js:2:1)
at Module._compile (module.js:643:30)
at loader (<Path...>\node_modules\babel-register\lib\node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (<Path...>\node_modules\babel-register\lib\node.js:154:7)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
at Module.require (module.js:587:17)
at require (internal/module.js:11:18)
[nodemon] app crashed - waiting for file changes before starting...
package.json file:
{
"name": "essentials",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon ./index.js --exec babel-node -e js"
},
"author": "test",
"license": "ISC",
"dependencies": {
"casual": "^1.5.19",
"express": "^4.16.3",
"express-graphql": "^0.6.12",
"graphql": "^0.13.2",
"graphql-tools": "^2.23.1",
"loadash": "^1.0.0",
"mongoose": "^5.0.12",
"nodemon": "^1.17.2",
"sequelize": "^4.37.5",
"sqlite3": "^4.0.0"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-env": "^1.6.1",
"babel-preset-stage-0": "^6.24.1"
}
}
I followed the below links but still none of them are working for me.
https://stackoverflow.com/questions/27431187/cannot-find-module-lodash
https://stackoverflow.com/questions/27431187/cannot-find-module-lodash/36618374
Also I see the below warning message:
Problems loading reference 'https://schemastore.azurewebsites.net/schemas/json/package.json': Unable to load schema from 'https://schemastore.azurewebsites.net/schemas/json/package.json': Unable to connect to https://schemastore.azurewebsites.net/schemas/json/package.json. Error: self signed certificate in certificate chain
Can anyone help me to fix this issue?
The package name should be lodash, not loadash.
After you correct that in packages.json you need to execute npm install.
I am trying to deploy node project on google app engine using
gcloud app deploy
But this is throwing error
Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [9]
Application startup error:
module.js:471
throw err;
^
Error: Cannot find module 'log4js'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/app/server.js:38:14)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
The same project is working on local machine. Here is my package.json
{
"name": "myapp",
"version": "1.0.0",
"description": "myapp",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": ""
},
"author": "",
"license": "ISC",
"bugs": {
"url": ""
},
"homepage": "",
"dependencies": {
"body-parser": "^1.15.0",
"connect-timeout": "^1.8.0",
"express": "^4.13.4",
"generic-pool": "^2.4.2",
"multer": "^1.2.0",
"mysql": "^2.10.2",
"requestify": "^0.1.17"
}
}
What is the issue?
log4js is missing in your dependencies.
npm install log4js --save to add it to your package.json.
I keep getting this error when deploying my Node and Mean app to Heroku. The app seems to work normally when I run it locally but does not like it when I push it to Heroku.
module.js:471
throw err;
^
Error: Cannot find module 'lodash/keys'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/app/node_modules/mongoose/node_modules/async/internal/iterator.js:16:13)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
This is my package.json file
{
"name": "utdknow",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"aws-sdk": "^2.6.12",
"body-parser": "^1.14.1",
"crypto-js": "^3.1.8",
"ejs": "^2.3.4",
"express": "^4.13.3",
"lodash": "^4.17.3",
"lodash.keys": "^4.2.0",
"moment": "^2.17.0",
"mongoose": "^4.2.5",
"ng-file-upload": "^12.0.4"
}
}
It seems like modules are not correctly installed. Try cleaning cache and deploy your app to re-install all dependencies:
https://github.com/heroku/heroku-repo
heroku plugins:install heroku-repo
heroku repo:purge_cache --app appname