React js - nodemon:应用程序崩溃 - 在开始之前等待文件更改



我刚开始使用nodemon,并创建了一个非常小的示例项目。 但是,一旦我启动服务器sudo npm run dev我就会收到以下错误:

[nodemon] app crashed - waiting for file changes before starting...

错误表示users.js:7 app.use(expressLayouts);有误

emanuele@pc:~/桌面/仪表板$ sudo npm run dev

dashboard@1.0.0 dev/home/emanuele/桌面/dashboard 节点应用.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(expressLayouts(; ^

引用错误:未定义应用 在对象。(/home/emanuele/Desktop/dashboard/routes/users.js:7:1( 在Module._compile(内部/模块/CJS/加载器.js:955:30( 在Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10( at Module.load (internal/modules/cjs/loader.js:811:32( 在Function.Module._load(内部/模块/CJS/加载器.js:723:14( at Module.require (internal/modules/cjs/loader.js:848:19( 在需要(内部/模块/CJS/助手.js:74:18( 在对象。(/home/emanuele/Desktop/dashboard/app.js:7:19( 在Module._compile(内部/模块/CJS/加载器.js:955:30( 在Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10( [nodemon] 应用程序崩溃 - 在开始之前等待文件更改...

所以下面是错误应该在哪里:

应用.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}`));

索引.js

const express = require('express');
const router = express.Router();
router.get('/', (req, res) => res.render('welcome'));
module.exports = router;

用户.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(这但不能解决问题

2(这个也是,但没有成功

3(我咨询了这个来源

4(我也遇到了这个问题,但仍然无法弄清楚可能出了什么问题

感谢您指出正确的方向以了解错误可能在哪里。

index.js(和users.js(内部没有定义app变量:

app.use(expressLayouts);
app.set('view engine', 'ejs');

这些应在您有此定义const app = express();app.js中定义。然后,它们将应用于 Express 应用程序中的所有其他路由,因此不需要多次定义它们。

最新更新