Error: Cannot find module 'node-events' | Discord.js - node.js

I am running a Discord bot using Discord.js on Repl.it, and just recently upgraded my Discord.js to the latest 13.6.0 version, and ever since have gotten this error my console as soon as I try to run my application.
Error: Cannot find module 'node-events' | Discord.js
Require stack:
- /home/runner/myBot/node_modules/discord.js/src/client/BaseClient.js
- /home/runner/myBot/node_modules/discord.js/src/index.js
- /home/runner/myBot/node_modules/discord.js-commando/src/client.js
- /home/runner/myBot/node_modules/discord.js-commando/src/index.js
- /home/runner/myBot/index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)
at Function.Module._load (internal/modules/cjs/loader.js:667:27)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/home/runner/myBot/node_modules/discord.js/src/client/BaseClient.js:3:22)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
Now, I have updated my Node.js version to 16.6.1, like was suggested by basically every post I could find about this error, but that still didn't quite seem to fix it. Running the node -v command in my Repl.it shell returns 16.6.1, as it should, and so I don't really know what I'm missing at this point.
I will put my package.json down below too, if it can help.
If anyone knows how I could fix this issue, I would gladly appreciate it.
Thank you in advance!
{
"name": "myBot",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node ."
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"#replit/database": "^2.0.1",
"base": "^3.0.0",
"canvas": "^2.9.0",
"common-tags": "^1.8.0",
"discord": "^0.8.2",
"discord.js": "^13.6.0",
"discord.js-commando": "^0.12.3",
"dotenv": "^10.0.0",
"events": "^3.3.0",
"express": "^4.17.1",
"init": "^0.1.2",
"node-events": "0.0.2",
"node-fetch": "^2.6.1",
"snekfetch": "^4.0.4",
"twitch": "^4.6.0"
},
"devDependencies": {
"node": "^16.6.1"
},
"description": ""
}

Related

AdonisJS Error: class BaseCommand extends ace.Command

I cloned my repo from github and npm install on both folders.
Now, I am trying to run adonis server and I am getting this error.
It works on my other machine at home but when I'm on my laptop it is not working. Is it my fault?
adonis serve --dev
class BaseCommand extends ace.Command {
TypeError: Class extends value undefined is not a constructor or null
at Object.<anonymous> (/home/muse/.nvm/versions/node/v16.15.0/lib/node_modules/#adonisjs/cli/src/Commands/Base/index.js:17:31)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/muse/.nvm/versions/node/v16.15.0/lib/node_modules/#adonisjs/cli/src/Commands/New/index.js:13:21)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
NPM audit
>edge.js <5.3.2
Severity: moderate
Cross-site Scripting in edge.js - https://github.com/advisories/GHSA-55r9-7mf8-m382
No fix available
node_modules/edge.js
#adonisjs/framework *
Depends on vulnerable versions of edge.js
node_modules/#adonisjs/framework
>2 moderate severity vulnerabilities
>Some issues need review, and may require choosing
a different dependency.
Package.json
{
"name": "adonis-api-app",
"version": "4.1.0",
"adonis-version": "4.1.0",
"description": "Adonisjs boilerplate for API server with pre-configured JWT",
"main": "index.js",
"scripts": {
"start": "node server.js",
"test": "node ace test"
},
"keywords": [
"adonisjs",
"adonis-app"
],
"author": "",
"license": "UNLICENSED",
"private": true,
"dependencies": {
"#adonisjs/ace": "^11.3.1",
"#adonisjs/auth": "^3.0.7",
"#adonisjs/bodyparser": "~2.0.9",
"#adonisjs/cors": "^1.0.7",
"#adonisjs/fold": "^4.0.9",
"#adonisjs/framework": "^5.0.9",
"#adonisjs/ignitor": "^2.0.8",
"#adonisjs/lucid": "^6.1.3",
"sqlite3": "^5.0.11"
},
"autoload": {
"App": "./app"
}
}

How to develop multiple get router functions under same controller and same route in expressjs/nodejs?

I am using Express with Node and I have a requirement in which my client end application can request the similar URLs as
http://localhost:3008/api/mitems/7
http://localhost:3008/api/mitems/0/0/20
http://localhost:3008/api/mitems/7/2/0/20
these requests will return a JSON response.
I have configured express to route as follows:
router.get("/getbyId/:mid", mControllers.getById);
router.get("/:mid/:pNo/:pSize", mControllers.getM);
router.get("/:mid/:mItemId/:pNo/:pSize", mControllers.getMItems);
But this does not work properly. I am unsure of how to pass multiple parameters, that is, I am unsure if this is the correct way to do this. Is it?
Node considers first router.get("/getbyId/:mid", mControllers.getById); api with each different request whether I call from http://localhost:3008/api/mitems/0/0/20 or http://localhost:3008/api/mitems/7/2/0/20 but in both ways.
How should I overload the same API functions in nodejs or is there any better way to achieve this?
================================package.json===========================
{
"name": "A Demos",
"version": "1.0.0",
"description": "a Demo",
"main": "index.js",
"dependencies": {
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"express-validator": "^6.12.0",
"handlebars": "^4.7.7",
"mysql": "^2.18.1",
"nodemailer": "^6.6.1",
"nodemon": "^2.0.12"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "test",
"license": "ISC"
}
The error , I am getting a nodejs side
Error: Route.get() requires a callback function but got a [object Undefined]
at Route.<computed> [as get] (s\node_modules\express\lib\router\route.js:202:15)
at Function.proto.<computed> [as get] (s\node_modules\express\lib\router\index.js:510:19)
at Object.<anonymous> (s\routes\menus-routes.js:12:8)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:14)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:92:18)
at Object.<anonymous> (s\index.js:16:21)
Express considers routes in the order you add them to the router, so /:mid/:pNo/:pSize is considered before /:mid/:mItemId/:pNo/:pSize. Since the request /mitems/0/0/20 matches the not only the latter, but also the former (with :mid = 'mitems', :pNo = '0', :pSize = '0'), it will be handled by mControllers.getM.
Therefore, add the longer (more specific) route before the shorter (less specific) one, e.g.,
router.get("/getbyId/:mid", mControllers.getById);
router.get("/:mid/:mItemId/:pNo/:pSize", mControllers.getMItems);
router.get("/:mid/:pNo/:pSize", mControllers.getM);
The getbyId route comes first, because the word getbyId is more specific than the placeholder :mid.

Node cannot find module ~/package.json (closed)

I'm trying to start my API with node but this error appears :
$ node ./.local/start.js
module.js:549
throw err;
^
Error: Cannot find module '/c/Users/$AAU000-TFETR2QTBK6P/Desktop/Stage/whasq-api-master/package.json'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at ConfigurationManager.getPackageConfig (C:\Users\$AAU000-TFETR2QTBK6P\Desktop\Stage\whasq-api-master\node_modules\#rduk\configuration\lib\manager.js:61:15)
at getDocument (C:\Users\$AAU000-TFETR2QTBK6P\Desktop\Stage\whasq-api-master\node_modules\#rduk\configuration\lib\manager.js:74:31)
at ConfigurationManager.getSection (C:\Users\$AAU000-TFETR2QTBK6P\Desktop\Stage\whasq-api-master\node_modules\#rduk\configuration\lib\manager.js:106:19)
at ConfigurationManager.get (C:\Users\$AAU000-TFETR2QTBK6P\Desktop\Stage\whasq-api-master\node_modules\#rduk\configuration\lib\manager.js:93:25)
at Object.<anonymous> (C:\Users\$AAU000-TFETR2QTBK6P\Desktop\Stage\whasq-api-master\index.js:14:38)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
The real problem is that the file package.json is present..
ls -a (at ~/Desktop/Stage/whasq-api-master)
./ ../ .circleci/ .gitignore .local/ api/ config/ ecosystem.config.js index.js lib/ node_modules/ package.json package-lock.json README.md sf_certificate/ templatesES.md
//package.json content
{
"name": "whasq-api",
"version": "0.1.1",
"description": "whasq-api",
"engines": {
"node": ">=8.11.1"
},
"main": "index.js",
"scripts": {
"pretest": "standard --fix",
"test": "exit 0"
},
"author": "WhASQ",
"license": "ISC",
"dependencies": {
"#rduk/configuration": "^2.2.3",
"#rduk/errors": "^1.3.1",
"#rduk/logger": "^1.0.3",
"#rduk/logger-winston-loggly-factory": "0.1.0",
"#rduk/logger-winston-provider": "^1.0.4",
"#rduk/message-broker": "^2.4.0",
"#rduk/provider": "^3.1.3",
"#rduk/tasks-orchestrator": "^0.1.3",
"aws-sdk": "^2.256.1",
"axios": "^0.18.1",
"bcrypt": "^3.0.4",
"body-parser": "^1.18.2",
"csv": "^3.1.0",
"dotenv": "5.0.1",
"elasticsearch": "^16.4.0",
"express": "4.16.3",
"express-request-id": "^1.4.1",
"helmet": "^3.15.1",
"jsonwebtoken": "8.2.1",
"morgan": "^1.9.1",
"multer": "^1.3.1",
"orm": "^5.0.4",
"package.json": "^2.0.1",
"pg": "^7.4.1",
"react-s3-uploader": "^4.8.0",
"socket.io": "2.0.4",
"socketio-jwt": "4.5.0",
"standard": "11.0.1",
"swagger-express-mw": "0.7.0",
"winston": "2.4.0"
},
"directories": {
"lib": "lib"
},
"devDependencies": {},
"keywords": []
}
I tried a lot of things, like switch versions of Node, delete modules then reinstall them, and other stuff like that but I cannot solve this problem.
I'm using those versions :
npm 6.11.3 node 8.11.1 and I'm using GitBash (i tried Powershell but no change)
(I tried every single version of Node (>=8.11.1) and the error is the same every time)
ls -a (at ~/Desktop/Stage/whasq-api-master/.local)
.env start.js
//start.js content
require('dotenv').load({path: process.env.PWD + '/.local/.env'})
require('../')
//.env content
RDUK_CONFIG_PATH=config
RDUK_CONFIG_PREFIX=app
RDUK_CONFIG_EXT=.yaml
APP_PORT=6500
APP_SECRET=xxx
SF_SECRET=(hidden)
SF_CERTIFICATE=sf_certificate/public.pem
AMQP_ADDRESS=amqp://cawdev:cawdev#192.168.1.87:5672
LOGGLY_TOKEN=xxx
LOGGLY_SUBDOMAIN=xxx
LOGGLY_LOGIN=jessie
LOGGLY_PASSWORD=(hidden)
ES_ADDRESS=http://cawtest.net:9200/
DB_PROTOCOL=postgresql
DB_HOST=localhost
DB_PORT=5433
DB_NAME=mydb
DB_USER=esteban
DB_PASS=(hidden)
AWS_ACCESS_KEY_ID=(hidden)
AWS_SECRET_ACCESS_KEY=(hidden)
AWS_REGION=eu-west-3
AWS_BUCKET=(hidden)
I also tried to move my repository at C:/ to avoid potential problems with my username ($AAU000-TFETR2QTBK6P) because I thought that name could be mistaken for an environment variable.
The issue come from the way Windows interpret the npm library, I advise you to switch to a Linux or Mac environment..

Local version of code works, but breaks when pushing to heroku - multer gcs

I have a form in which I submit images and they get uploaded to Firebase. I built the project locally, but when I push it to Heroku it breaks.
Express:
var gcs = require( 'multer-gcs' );
var storage = gcs({
filename : function( req, file, cb ) {
cb( null, file.fieldname + '-' + Date.now() );
},
bucket : 'mybucket.appspot.com', // Required : bucket name to upload
projectId : 'mybucket', // Required : Google project ID
keyFilename : './mybucket-firebase-adminsdk-4oyba-xee555bbgr.json', // Required : JSON credentials file for Google Cloud Storage
acl : 'publicread' // Optional : Defaults to private
});
const multer = require('multer');
var upload = multer({storage: storage});
app.post('/sell', upload.any(), homeController.postSellPage);
First Error Code (From Heroku Logs):
Error: Cannot find module 'multer-gcs'
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 Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at Object.<anonymous> (/app/app.js:22:11)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:394:7)
at tryModuleLoad (module.js:446:12)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3
So then I ran the following in order to update my package.json: npm install multer-gcs --save, and it installed, while giving me this message:
deprecated gcloud#0.36.0: gcloud has been renamed to google-cloud. To get new features and bug fixes, you must use the new package.
I don't know what to do with that message, so I didn't do anything, except re-push to heroku, after committing the new package.json. I got the following issue:
Build failed
Outdated Yarn lockfile
Your application contains a Yarn lockfile (yarn.lock) which does not
match the dependencies in package.json. This can happen if you use npm
to install or update a dependency instead of Yarn.
Please run the following command in your application directory and check
in the new yarn.lock file:
$ yarn install
$ git add yarn.lock
$ git commit -m "Updated Yarn lockfile"
$ git push heroku master
https://kb.heroku.com/why-is-my-node-js-build-failing-because-of-an-outdated-yarn-lockfile
So I then ran yarn install, but got
The engine "node" is incompatible with this module. Expected version "6.9.5".
Found incompatible module
Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
So I looked and in package.json I have the following, which includes the node 6.9.5, so I think I'm ok in that regard.
"engines": {
"node": "6.9.5",
"npm": "4.6.1",
"yarn": "1.3.2"
},
I then ran yarn install --ignore-engines, based on a posting about this same issue. That gave me the following:
/Users/user/path/node_modules/gcloud/node_modules/grpc: Command failed.
Exit code: 127
Command: ./node_modules/.bin/node-pre-gyp install --fallback-to-build
I tried running this command npm install --unsafe-perm, based on another posting, but again this issue with grpc.
I would love any help that is out there about how I might go about getting heroku to accept/run the build, as I'm stumped on this one. Please let me know if any clarification is needed.
As requested, the package.json:
{
"name": "App Name",
"version": "0.0.2",
"description": "Amazing Application",
"engines": {
"node": "6.9.5",
"npm": "4.6.1",
"yarn": "1.3.2"
},
"repository": {
"type": "git",
"url": "https://github.com/amazing_app.git"
},
"author": "Example",
"license": "Example",
"scripts": {
"start": "node app.js",
"test": "mocha --reporter spec",
"postinstall": "npm rebuild node-sass"
},
"dependencies": {
"aws-sdk": "^2.46.0",
"bcrypt-nodejs": "^0.0.3",
"bluebird": "^3.4.7",
"body-parser": "^1.15.2",
"chalk": "^1.1.3",
"cheerio": "^0.22.0",
"clockwork": "^0.1.4",
"compression": "^1.6.2",
"connect-mongo": "^1.3.2",
"dotenv": "^4.0.0",
"errorhandler": "^1.4.3",
"express": "^4.14.0",
"express-flash": "^0.0.2",
"express-session": "^1.14.2",
"express-status-monitor": "^0.1.5",
"express-validator": "^3.1.2",
"fbgraph": "^1.3.0",
"firebase": "^3.9.0",
"firebase-admin": "^4.2.1",
"github": "^9.2.0",
"grpc": "1.3.8",
"instagram-node": "^0.5.8",
"lastfm": "^0.9.2",
"lob": "^3.9.0",
"lusca": "^1.4.1",
"mongoose": "^4.6.6",
"morgan": "^1.7.0",
"multer": "^1.3.0",
"multer-gcs": "^1.0.2",
"node-base64-image": "^1.0.3",
"node-foursquare": "^0.3.0",
"node-linkedin": "^0.5.4",
"node-sass-middleware": "^0.11.0",
"nodemailer": "^3.1.7",
"passport": "0.3.2",
"passport-facebook": "^2.1.1",
"passport-github": "^1.1.0",
"passport-google-oauth": "^1.0.0",
"passport-instagram": "^1.0.0",
"passport-linkedin-oauth2": "^1.4.1",
"passport-local": "^1.0.0",
"passport-oauth": "^1.0.0",
"passport-openid": "^0.4.0",
"passport-twitter": "^1.0.4",
"paypal-rest-sdk": "^1.7.0",
"pug": "^2.0.0-beta6",
"request": "^2.78.0",
"stripe": "^4.12.0",
"tumblr.js": "^1.1.1",
"twilio": "^3.3.1-edge",
"twit": "^2.2.5",
"validator": "^7.0.0"
},
"devDependencies": {
"chai": "^3.5.0",
"eslint": "^3.9.1",
"eslint-config-airbnb-base": "^11.0.0",
"eslint-plugin-import": "^2.1.0",
"mocha": "^3.1.2",
"supertest": "^3.0.0"
},
"eslintConfig": {
"extends": "airbnb-base",
"rules": {
"comma-dangle": 0,
"consistent-return": 0,
"no-param-reassign": 0,
"no-underscore-dangle": 0,
"no-shadow": 0,
"no-console": 0,
"no-plusplus": 0
}
}
}
**NOTE:**It only breaks when I uncomment the stuff under Express (shown above).
UPDATE:
The application will successfully post to Heroku when I use AWS with Multer var multerS3 = require('multer-s3');var s3 = new aws.S3({}); so it MUST be something with GCS and its dependencies
Follow the below steps
Remove the yarn.lock file
Add a new Aptfile, with below content
gcc
build-essential
Add the apt buildpack using below command
heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt
Once you have done that, make a push again to heroku and now it should work
Not 100% sure, but do you NEED to include the yarn.lock file? I know it keeps your dependencies locked at the exact versions you used, but you should be fine without it in most instances?
If you were to git rm yarn.lock heroku may like you better, in theory.
Also possible is that something in your node_modules is somehow broken (I'm not 100% sure how this happens exactly) or your yarn.lock has something wrong. You might try to rm both of those and re-run yarn install

inconsistent error cannot find module

I've created a module of my own, let's call him X.
I'm using crontab to run proccesses repeatedly.
Sometimes a proccess might throw an error that he cannot find my module X.
20 10 2016 09:01:06.815 (production) (i-8e4) ERROR console - update.js ERROR: Error: Cannot find module 'X' stack: Error: Cannot find module 'X'
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/git/repo/update.js:3:14)
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)
I find that odd since the proccessess are running most of times, probably more then 90% of the times.
I think this is aproblem with packages..
So heres the package.json of module X:
{
"name": "X",
"version": "0.8.2",
"description": "a Library",
"dependencies": {
"async": "^1.4.2",
"aws-sdk": "^2.2.12",
"colors": "^1.1.2",
"cron": "^1.0.9",
"csv": "^0.4.6",
"geoip-lite": "^1.1.6",
"hiredis": "^0.4.1",
"ipaddr.js": "^1.0.3",
"lodash": "^3.10.1",
"log4js": "^0.6.27",
"mobile-detect": "^1.3.0",
"mysql": "^2.9.0",
"node-schedule": "^1.0.0",
"node-timeout": "0.0.4",
"nodemailer": "^1.8.0",
"nodemailer-ses-transport": "^1.3.0",
"password-hash": "^1.2.2",
"path-extra": "^2.0.0",
"pg": "^4.4.2",
"qs": "^5.2.0",
"redis": "^2.2.5",
"request": "^2.65.0",
"request-ip": "^1.1.4",
"s3": "^4.4.0",
"ua-parser-js": "^0.7.9"
},
"devDependencies": {
"eslint": "^1.6.0",
"it-each": "^0.3.1",
"jscs": "^2.3.0"
}
}
main module package.json(it has several proccess that require X)
{
"name": "Main module",
"version": "1.1.6",
"description": "Main module crontab runs his processess that require module X",
"main": "index.js",
"dependencies": {
"async": "^1.5.0",
"chai": "^3.5.0",
"cron": "^1.1.0",
"lodash": "^3.10.1",
"mock-globals": "^0.1.3",
"moment": "^2.13.0",
"node-timeout": "0.0.4",
"nodemailer": "^1.8.0",
"nodemailer-ses-transport": "^1.3.0",
"proxyquire": "^1.7.10",
"redis-mock": "^0.10.0",
"X": "git+ssh://git#github.com:X.git#v0.8.2"
}
}
Having some trouble with this error since it is only happening on production instance..
Any ideas on how to debug/solve this?
Thanks!

Resources