我开始使用 Express 学习 Node.js,但我在路由系统方面遇到了一些问题。
在我的 app.js (我的主文件)中,我有:
var express = require('express');
var path = require('path');
var routes = require('./routes/index');
var admin = require('./routes/admin');
...
app.use('/', routes);
app.use('/admin, admin);
在index.js中:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', {
title: 'Express'
});
});
根 url 工作得很好,它正确返回 jade 模板“index”。
我正在尝试在不同的文件中为“管理”模板(位于“./routes/admin”中)做同样的事情。 有一点是,当我转到 localhost:5000/admin (例如)时,它返回 404 错误。
这是我的 admin.js 文件:
var express = require('express');
var router = express.Router();
router.get('/admin', function(req, res, next) {
res.render('admin', {
title: 'Connexion'
});
});
index.js 和 admin.js 都包含 module.exports = router;
如果有人有想法或想发表评论,欢迎您。
非常感谢(请原谅我的英语!)
最佳答案
您正在尝试将此页面路由到 localhost:5000/admin/admin。 app.use('/admin, 管理员);意味着 admin.js 中的所有函数都将被此请求调用 localhost:5000/admin/... 因此,如果您想使用此请求 localhost:5000/admin 渲染 admin.jade,您应该将此函数插入 路线/指数
router.get('/admin', function(req, res, next) {
res.render('admin', {
title: 'Connexion'
});
});
或在routes/admin中插入此函数:
router.get('/', function(req, res, next) {
res.render('admin', {
title: 'Connexion'
});
});
关于javascript - Express Routes - 多个文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29310972/