javascript - 我想做基本的快速路由。但它返回 -> 错误:Route.get() 需要一个回调函数但得到一个 [object Undefined]
问题描述
动机:基本的快递路线。由于一个目录中有很多文件,我希望这个目录路径由变量处理。但是另一个文件处理得很少。所以当我编码路径时,它只需要文件名。这将使编码变得容易。
让我们看看我的主文件 app.js 位于“./”上,这里我编码:
var next = require('./routes');
app.get('/', next.index);
路径由变量 next 处理。我也有文件 index.js 位于“./routes”,这里我编码:
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
它没有响应,而是将错误返回为 ->
Error: Route.get() requires a callback function but got a [object Undefined]
但是当我从 app.js 替换下一个变量时:
var next = require('./routes/index');
app.get('/', next);
这行得通。那么我需要在哪里改变呢?
解决方案
此代码会导致错误,因为当您使用 require 时,它会自动要求该目录的 index.js 文件。所以这两行代码是一样的。
var next = require('./routes');
var next = require('./routes/index');
因此,当您执行此代码时,它将导致错误,因为 next.index 不存在。
var next = require('./routes');
app.get('/', next.index); // This will cause an error
正确的方法是:
var next = require('./routes');
app.get('/', next);
推荐阅读
- python - 需要帮助使用带括号的字符串
- keycloak - 是否可以从 Keycloak 中检索 AUTH_SESSION_ID cookie?
- r - Anova 测试 - 具有两个因素比较的单独组
- ibm-cloud - 上传后 bluemix 应用程序推送挂起
- ios - 使用 PinLayout 制作网格视图
- python - 组合 2 个列表,每次 n 个元素
- swift - 在 Swift 中,为什么错误“类型别名引用自身”取决于类型别名的定义位置?
- excel - 插入的带有单元格引用的公式无法识别新输入
- html - 整个浏览器宽度上的 CSS 三角形
- typo3 - 创建自定义 TER (TYPO3) 服务器