节点101:未定义app.use ReferenceError

我是Node / Express新手,并有一个关于路由的基本问题,因为我收到以下错误信息:

app.use('/edu', edu); ^ ReferenceError: edu is not defined at Object.<anonymous> (/Users/ronitelman/Dropbox/happy/happy/app.js:29:17) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (/Users/ronitelman/Dropbox/happy/happy/bin/www:7:11) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) 

[nodemon]应用程序崩溃 – 正在等待文件更改开始之前…

app.js:

 app.use('/', routes); app.use('/users', users); app.use('/about', about); app.use('/edu', edu); 

文件结构:

 > root > ... > routes | about.js | edu.js | index.js | users.js 

edu.js:

 var express = require('express'); var router = express.Router(); router.get('/', function(req, res) { res.render('dashboard', { layout: 'layout_edu' }); }); module.exports = router; 

另外,我想知道是否应该在我的dashboard.jade文件中使用“扩展布局”,或者如果我应该在路线中定义布局

dashboard.jade

 extends layout //- or res.render('dashboard', { layout: 'layout_edu' }); ? block content include ./nav/nav_layout.jade .wrapper include ./home/home.jade include ./home/benefits.jade include ./home/students.jade include ./home/teachers.jade include ./home/admin.jade include ./home/analytics.jade include ./home/tech.jade include ./home/featured.jade 

确保你的app.js文件需要你的edu模块。 通常在文件的顶部,你需要像var edu = require('./routes/edu.js'); (要求节点在routes目录中加载你的edu.js文件)。

关于你的第二个问题,你在Jade文件中进行extends调用的方式应该是可以的。 为了更加清晰并避免错误,您应该通过文件名引用它,例如extends ./layout.jade (如果layout.jadedashboard.jade在同一目录中)