为什么使用不同的文件快速路由不起作用?

我试图模块化我的应用程序分离路线,但唯一的作品是根路线,我不知道我的代码有什么问题,阅读快速路由后 ,我的代码似乎写入正确

app.js

// ... var routes = require('./routes/index'); var users = require('./routes/users'); //Require the external route var about = require('./routes/about'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); //Routes app.use('/', routes); app.use('/users', users); //The external route app.use('login', login); 

index.js

 var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Clazapp' }); }); module.exports = router; 

login.js

 var express = require('express'); var router = express.Router(); //login page router.get("/login", function(req, res, next) { res.render('login'); }); module.exports = router; 

正如你所看到的,login.js和index.js的代码都是相同的,但是/ loginpath不起作用。 出现消息:

错误:无法在EventEmitter.render(/ home / cesar / Documentos / node / clazapp2 / node_modules / express / lib / application)视图目录“/ home / cesar / Documentos / node / clazapp2 / views”中查看视图“错误” js:579:17)在/ home / cesar / Documentos / node / clazapp2 / app的ServerResponse.render(/home/cesar/Documentos/node/clazapp2/node_modules/express/lib/response.js:961:7) js:61:7在trim.prefix(/ home / cesar / Documentos / node / clazapp2)上的Layer.handle_error(/home/cesar/Documentos/node/clazapp2/node_modules/express/lib/router/layer.js:71:5) /node/modules/express/lib/router/index.js:310:13)at /home/cesar/Documentos/node/clazapp2/node_modules/express/lib/router/index.js:280:7 at Function.process_params(/ / home / cesar / Documentos / node / clazapp2 / node_modules / express / lib / router / home / cesar / Documentos / node / clazapp2 / node_modules / express / lib / router / index.js:330:12) index.js:271:10)at EventEmitter.ren完成(/home/cesar/Documentos/node/clazapp2/node_modules/express/lib/response.js:956:25) der(/home/cesar/Documentos/node/clazapp2/node_modules/express/lib/application.js:581:14)

看起来像文件login.jade没有find,但他已经位于目录/视图。 如此复杂,任何虽然?

据我所知express.Router()只能用于特殊情况。
我使用下一个模块化应用程序

 // app.js var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); ... require('./routes')(app); // it's call ./routes/index.js and pass app to it // ./routes/index.js var smthEntity = require('./smthEntity'); module.exports = function (app) { app.get('/smth-path', ...smth, eg checkAuth, ...); app.get('/smthEntity', smthEntity.get); app.get('/login', require('./login').get); app.post('/login', require('./login').post)); } // ./routes/smthEntity var SmthEntity = require ('smthEntity'); // include models exports.get = function(req, res, next) { res.render('smthEntity.html', { arg1: value1, arg2: value2 }); }; ... // other method and route for smthEntity // ./routes/login exports.get = function(req, res, next) { res.render('login.html', { ... }); }; exports.post = function(req, res, next) { ...process post data... };