Getting:
ReferenceError: app is not defined.
Here is the error details:
\[nodemon\] restarting due to changes...
\[nodemon\] starting `node server.js`
D:\\ebl\\server\\app\\routes.js:4
app.get('/health', (\_req, res) =\> {
^
ReferenceError: app is not defined
at Object.\<anonymous\> (D:\\ebl\\server\\app\\routes.js:4:1)
at Module.\_compile (node:internal/modules/cjs/loader:1241:14)
at Module.\_extensions..js (node:internal/modules/cjs/loader:1295:10)
at Module.load (node:internal/modules/cjs/loader:1091:32)
at Module.\_load (node:internal/modules/cjs/loader:938:12)
at Module.require (node:internal/modules/cjs/loader:1115:19)
at require (node:internal/modules/helpers:130:18)
at Object.\<anonymous\> (D:\\ebl\\server\\app\\app.js:8:9)
at Module.\_compile (node:internal/modules/cjs/loader:1241:14)
at Module.\_extensions..js (node:internal/modules/cjs/loader:1295:10)
Node.js v20.9.0
\[nodemon\] app crashed - waiting for file changes before starting...
Source code:
app.js
require('dotenv').config('../.env')
const express = require('express')
const app = express();
app.use(require('./middleware'));
app.use(require('./routes'));
app.use(require('./error'));
module.exports = app;
routes.js
const router = require('express').Router();
app.get('/health', (_req, res) => {
res.status(200).json({ message: 'success' })
});
module.exports = router
package.json
{
"name": "ebl",
"version": "1.0.0",
"description": "ebl",
"main": "index.js",
"scripts": {
"dev": "nodemon server.js"
},
"keywords": [],
"author": "ebl",
"license": "ISC",
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^16.4.5",
"express": "^4.19.2",
"mongoose": "^8.3.5",
"morgan": "^1.10.0"
},
"devDependencies": {
"nodemon": "^3.1.0"
}
}
I chanage the path route '/health' to another name '/home', but error is the same
Since the route.js exports router
it should be router.get('..
(instead of app.get('..
):
router.get('/health', (_req, res) => {...