node.js - Express中间件卡在中间
问题描述
我正在尝试使用 express().router 作为快速服务器的中间件。
这是快递服务器的代码 -
const server = express();
const port = process.env.PORT || 5000;
server.use(logger("short"));
server.use(respomnseTime(4)) // The number indicate how digits we want
server.use('/', mRouter);
server.use((request, response, next)=>{
mUtil.print("Request IP: " + request.url);
mUtil.print("Request Date: " + new Date());
next();
})
server.use((request, response, next)=>{
mUtil.auth(request, response, next);
})
server.use((request, response, next)=>{
console.log("Middleware 2");
next();
})
这是路由器的代码(另一个文件) -
const router = require('express').Router();
router.get('/', (request, response) => {
response.send({ express: 'YOUR EXPRESS BACKEND IS CONNECTED' });
});
router.get('/user/:username', (request, response)=>{
});
router.get('/about', (request, response)=>{
});
router.get('/contact', (request, response)=>{
});
看起来他在中间件之后 -
server.use('/', mRouter);
没有运行。我认为问题的发生是因为没有调用next()
函数,但我不确定如何编写它。有人有想法吗?
解决方案
你应该像下面这样导出你的路由器
module.exports = router;
推荐阅读
- python - 如何在不影响其他文件的情况下降级python版本
- javascript - 在 React 中使用 D3 时,我应该使用 useRef,还是直接使用 D3 通过 tag/class/Id 选择元素?
- ssh - 树莓派wifi局域网服务器如何?
- c# - 是否可以将 c# 服务器中的对象转换为具有更多字段的 Typescript 对象?
- laravel - 如何在 Laravel 网站上使用 predis 在 Windows 上查看缓存数据?
- javascript - 为 2 个数组获取相同的随机索引
- amazon-dynamodb - AWS DynamoDB 中本地索引的好处?
- kubernetes - Kubernetes fsGroup 未更改 PersistentVolume 上的文件所有权
- asp.net-core - 如何从动态表单中获取值?
- python - 如何在 pygame 中为矩形分配唯一值?