javascript - Express Routes - 多个文件的问题

标签 javascript node.js express routes

我开始使用 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/

相关文章:

node.js - Node js POST请求错误错误[ERR_HTTP_HEADERS_SENT] : Cannot set headers after they are sent to the client

javascript - 如何强制 gulp 调用同步运行?

node.js - Dockerized Node 应用程序不提供静态内容

javascript - Uglify 意外改变 Angularjs 代码加载顺序

javascript - 将 ISO 时间转换为 H :MM am|pm in JavaScript

javascript - 如何包含多个组件,然后可能从一个组件调用到另一个组件?

javascript - CRM Dynamics,如何从一个表单传递值并使用 Xrm.Utility.openEntityForm() 在新实体(表单)中设置值;

javascript - Node.js 使用回调函数更改 HTML 代码

node.js - Kinesis Stream 中的数据丢失。这可能是什么原因?

node.js - EJS和Node,如果传入的对象不存在,EJS会抛出错误?