l'ajout d'une nouvelle route au nœud express
J'essaye d'ajouter une nouvelle route dans mon express app mais je continue à avoir d'erreur lorsque vous essayez de démarrer le serveur. L'erreur est
C:\development\node\express_app\node_modules\express\lib\router\index.js:252
throw new Error(msg);
^
Error: .get() requires callback functions but got a [object Undefined]
voici mes fichiers, je suis nouveau sur le nœud alors laissez-moi savoir si j'en ai laissé un fichier important
routes/furniture.js
exports.furniture = function(req, res){
res.render('furniture', { title: '47pli' });
};
routes/index.js
/*
* GET home page.
*/
exports.index = function(req, res){
res.render('index', { title: '47pli' });
};
vues/meubles.ejs
<!DOCTYPE html>
<html>
<head>
<title>4·pli -- architecture</title>
<link rel='stylesheet' href='/stylesheets/style.css'/>
<link href='http://fonts.googleapis.com/css?family=Didact+Gothic' rel='stylesheet' type='text/css'>
</head>
<body>
<div class="wrapper">
<h1 class="logo"><%= title %></h1>
</div>
</body>
</html>
app.js
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, furniture = require('./routes/furniture')
, http = require('http')
, path = require('path');
var app = express();
//all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(require('stylus').middleware(__dirname + '/public'));
app.use(express.static(path.join(__dirname, 'public')));
//development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);
app.get('/furniture', routes.furniture);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
source d'informationauteur Antarr Byrd
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est:
Ces 3 configurez les itinéraires des dossiers, pas un fichier spécifique, express vous recherchez un index.js ( pas trouvé, alors --> erreur)
À l'intérieur de ces dossiers, vous devez mettre un index.js avec votre:
Ensuite, votre structure de dossier de projet doit ressembler à:
Vous pouvez ajouter plusieurs fonctions d'exportation à un parcours comme celui-ci:
app.js
/routes/index.js
Si votre site est tellement grand, à certains moments, je préfère faire quelque chose comme:
routes/furniture.js
:Puis dans
app.js
:C'est essentiellement le même, mais app.js sera plus propre.
Bien que c'est un peu vieux, mais de partager la façon dont je le fais. Voici une autre approche qui rend le code plus propre et facile d'ajouter des itinéraires.
app.js
/routes/index.js
'validateUser" et "validateAdmin" sont personnalisés moyen des marchandises, qui sera utilisé pour valide les paramètres de la requête ou de faire quelques pré-traitement avant de demander à atteindre à la demande du gestionnaire. Cette option est facultative et vous pouvez avoir plusieurs middleware (séparés par des virgules).
/routes/user.js
/routes/admin.js