Ich versuche, meine App zu trennen, Routen zu trennen, aber die einzige, die funktioniert, ist die Root-Route, ich weiß nicht, was das Problem mit meinem Code ist, nach dem Lesen der Express Routing, scheint mein Code korrekt geschriebenWarum Routing in Express mit anderen Dateien funktioniert nicht?
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;
log in.js
var express = require('express');
var router = express.Router();
//login page
router.get("/login", function(req, res, next) {
res.render('login');
});
module.exports = router;
Wie Sie sehen können, sind der Code der beiden login.js und index.js ziemlich das gleiche, aber die/login Route nicht funktioniert. Erscheint die Meldung:
Error: Failed to lookup view "error" in views directory "/home/cesar/Documentos/node/clazapp2/views" at EventEmitter.render (/home/cesar/Documentos/node/clazapp2/node_modules/express/lib/application.js:579:17) at ServerResponse.render (/home/cesar/Documentos/node/clazapp2/node_modules/express/lib/response.js:961:7) at /home/cesar/Documentos/node/clazapp2/app.js:61:7 at Layer.handle_error (/home/cesar/Documentos/node/clazapp2/node_modules/express/lib/router/layer.js:71:5) at trim_prefix (/home/cesar/Documentos/node/clazapp2/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/index.js:330:12) at IncomingMessage.next (/home/cesar/Documentos/node/clazapp2/node_modules/express/lib/router/index.js:271:10) at done (/home/cesar/Documentos/node/clazapp2/node_modules/express/lib/response.js:956:25) at EventEmitter.render (/home/cesar/Documentos/node/clazapp2/node_modules/express/lib/application.js:581:14)
scheint, wie die Datei login.jade nicht gefunden hat, aber er ist bereits im Verzeichnis/Blick. So kompliziert, irgendwelche Gedanken?
Was genaue URL modularisieren werden Sie Ihre login.js Route erwartet, für die Arbeit? – jfriend00
@ jfriend00 Ich brauche die login.jade, genauso einfach. –
Huhh. Ich habe gefragt, für welche URL Sie Ihre Login-Route erwarten. Bitte antworten Sie mit einer vollständigen URL. Ich frage, weil 'app.use ('login', login);' scheint falsch zu sein, aber ich möchte wissen, welche URL Sie erwarten, zu arbeiten, bevor Sie Ratschläge geben, was der Code für die Route sein sollte? – jfriend00