React js - nodemon:应用程序崩溃 - 在开始之前等待文件更改
React js - nodemon: app crashed - waiting for file changes before starting
我刚开始使用 nodemon
并开始创建一个非常小的示例项目。
但是,一旦我启动服务器 sudo npm run dev
,我就会收到以下错误:
[nodemon] app crashed - waiting for file changes before starting...
报错说users.js:7 app.use(expressLayouts);
上有错误
emanuele@pc:~/Desktop/dashboard$ sudo npm run dev
dashboard@1.0.0 dev /home/emanuele/Desktop/dashboard
nodemon app.js
[nodemon]2.0.2[nodemon]随时重启,输入rs
[nodemon]
观看目录:. [nodemon] 观看扩展:js、mjs、json
[nodemon] 开始 node app.js
/home/emanuele/Desktop/dashboard/routes/users.js:7
app.use(快速布局);
^
ReferenceError:应用未定义
在对象。 (/home/emanuele/Desktop/dashboard/routes/users.js:7:1)
在 Module._compile (internal/modules/cjs/loader.js:955:30)
在 Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
在 Module.load (internal/modules/cjs/loader.js:811:32)
在 Function.Module._load (internal/modules/cjs/loader.js:723:14)
在 Module.require (internal/modules/cjs/loader.js:848:19)
在要求 (internal/modules/cjs/helpers.js:74:18)
在对象。 (/home/emanuele/Desktop/dashboard/app.js:7:19)
在 Module._compile (internal/modules/cjs/loader.js:955:30)
在 Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10) [nodemon] 应用程序崩溃 -
在开始之前等待文件更改...
下面是错误的地方:
app.js
const express = require('express');
const expressLayouts = require('express-ejs-layouts');
const app = express();
app.use(expressLayouts);
app.set('view engine', 'ejs');
// Routes
app.use('/', require('./routes/index'));
app.use('/users', require('./routes/users'));
const PORT = process.env.PORT || 5000;
app.listen(PORT, console.log(`Server started on port ${PORT}`));
index.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => res.render('welcome'));
module.exports = router;
users.js
const express = require('express');
const router = express.Router();
// Login Page
router.get('/login', (req, res) => res.send('Login'));
// Register Page
router.get('/register', (req, res) => res.send('Register'));
module.exports = router;
如果需要下面我的package.json
{
"name": "dashboard",
"version": "1.0.0",
"description": "",
"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": "^3.0.1",
"express": "^4.17.1",
"express-ejs-layouts": "^2.5.0",
"express-session": "^1.17.0",
"mongoose": "^5.8.11",
"passport": "^0.4.1",
"passport-local": "^1.0.0"
},
"devDependencies": {
"nodemon": "^2.0.2"
}
}
我不明白上面这段代码有什么问题。
我查阅了一些帖子,例如:
1) This 但无法解决问题
2) 但没有成功
3) 我咨询过
4) 我遇到了 this too 但仍然无法弄清楚哪里出了问题
感谢您指出正确的方向以了解错误可能出在哪里。
在 index.js
(和 users.js
)中没有定义 app
变量:
app.use(expressLayouts);
app.set('view engine', 'ejs');
这些应该在 app.js
中定义 const app = express();
。然后他们将申请您的 Express 应用程序中的所有其他路由,因此不需要多次定义它们。
我刚开始使用 nodemon
并开始创建一个非常小的示例项目。
但是,一旦我启动服务器 sudo npm run dev
,我就会收到以下错误:
[nodemon] app crashed - waiting for file changes before starting...
报错说users.js:7 app.use(expressLayouts);
emanuele@pc:~/Desktop/dashboard$ sudo npm run dev
dashboard@1.0.0 dev /home/emanuele/Desktop/dashboard nodemon app.js
[nodemon]2.0.2[nodemon]随时重启,输入
rs
[nodemon] 观看目录:. [nodemon] 观看扩展:js、mjs、json [nodemon] 开始node app.js
/home/emanuele/Desktop/dashboard/routes/users.js:7 app.use(快速布局); ^ReferenceError:应用未定义 在对象。 (/home/emanuele/Desktop/dashboard/routes/users.js:7:1) 在 Module._compile (internal/modules/cjs/loader.js:955:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10) 在 Module.load (internal/modules/cjs/loader.js:811:32) 在 Function.Module._load (internal/modules/cjs/loader.js:723:14) 在 Module.require (internal/modules/cjs/loader.js:848:19) 在要求 (internal/modules/cjs/helpers.js:74:18) 在对象。 (/home/emanuele/Desktop/dashboard/app.js:7:19) 在 Module._compile (internal/modules/cjs/loader.js:955:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10) [nodemon] 应用程序崩溃 - 在开始之前等待文件更改...
下面是错误的地方:
app.js
const express = require('express');
const expressLayouts = require('express-ejs-layouts');
const app = express();
app.use(expressLayouts);
app.set('view engine', 'ejs');
// Routes
app.use('/', require('./routes/index'));
app.use('/users', require('./routes/users'));
const PORT = process.env.PORT || 5000;
app.listen(PORT, console.log(`Server started on port ${PORT}`));
index.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => res.render('welcome'));
module.exports = router;
users.js
const express = require('express');
const router = express.Router();
// Login Page
router.get('/login', (req, res) => res.send('Login'));
// Register Page
router.get('/register', (req, res) => res.send('Register'));
module.exports = router;
如果需要下面我的package.json
{
"name": "dashboard",
"version": "1.0.0",
"description": "",
"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": "^3.0.1",
"express": "^4.17.1",
"express-ejs-layouts": "^2.5.0",
"express-session": "^1.17.0",
"mongoose": "^5.8.11",
"passport": "^0.4.1",
"passport-local": "^1.0.0"
},
"devDependencies": {
"nodemon": "^2.0.2"
}
}
我不明白上面这段代码有什么问题。 我查阅了一些帖子,例如:
1) This 但无法解决问题
2)
3) 我咨询过
4) 我遇到了 this too 但仍然无法弄清楚哪里出了问题
感谢您指出正确的方向以了解错误可能出在哪里。
在 index.js
(和 users.js
)中没有定义 app
变量:
app.use(expressLayouts);
app.set('view engine', 'ejs');
这些应该在 app.js
中定义 const app = express();
。然后他们将申请您的 Express 应用程序中的所有其他路由,因此不需要多次定义它们。