ich versuche, eine Route für localhost zu erstellen: port/admin/ und ich möchte die routes.js Dateien und view.js Dateien in übereinstimmenden Ordnern so habe ich gewohnt zu viele spaggeti späterWie behebe ich Routen zu finden Ansichten in Unterordnern in node.js
aber ich erhalte: 500 Fehler: Fehler im Hinblick auf Nachschlag „/ admin/manage_subjects“ für den Versuch, eine neue Route zu erstellen und mit gleichen Ordnern einige die gleichen
Ich habe die folgende Ansicht Ordner mit Express
mainapp(root)
routes(folder)
admin(folder)
index.js(nested inside admin)
index.js(nested inside routes)
views(folder)
admin(folder)
admin_layout.jade(nested inside admin)
manage_subjects.jade(nested inside admin)
index.jade(nested inside views)
layout.jade(nested inside views)
Code: Routen/admin/index.js
exports.index = function (req, res) {
res.render('manage_subjects',{title:'Express'});}
views/admin/manage_subjects.jade
extends admin_layout
block content
h1 = title
p Welcome to #{title}
mein app.js Code
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, admin_routes = require('./routes/admin/')
, user = require('./routes/user')
, http = require('http')
, path = require('path')
, repository = new (require('./domain_model/repository'))();
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
//fill local subjects
repository.subjects.GetAll(function (err, data) {
if (err) throw err;
app.locals.subjects = data;
});
//append routes
app.get('/', routes.index);
app.get('/admin', admin_routes.index);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on http://localhost:' + app.get('port'));
});
in routes/admin/index.js scheint es sollte es 'res.render ('admin/manage_subjects', {title: 'Express'});}' – knshn
ich habe es versucht, hat nicht funktioniert :( – user2538720