pan*_*nga 5 javascript node.js express
我正在尝试设置一个在每个页面加载时调用的全局函数,无论它在我的网站中的位置如何.根据Express的API,我已经使用过了
app.all("*", doSomething);
Run Code Online (Sandbox Code Playgroud)
在每个页面加载时调用doSomething函数,但它并不完全有效.该函数会在每个页面加载时触发,除了基本域的页面加载(例如http://domain.com/pageA将调用该函数,但http://domain.com不会).有谁知道我做错了什么?
谢谢!
我知道这是一个旧的,但仍然可能对某人有用.
我认为问题可能是:
app.use(express.static(path.join(__dirname, 'public')));
var router = express.Router();
router.use(function (req, res, next) {
console.log("middleware");
next();
});
router.get('/', function(req, res) {
console.log('root');
});
router.get('/anything', function(req, res) {
console.log('any other path');
});
Run Code Online (Sandbox Code Playgroud)
在任何路径上调用中间件的地方,但是 /
这是因为express.static根据预设public/index.html的/
要解决此问题,请将参数添加到静态中间件:
app.use(express.static(path.join(__dirname, 'public'), {
index: false
}));
Run Code Online (Sandbox Code Playgroud)
我打赌你放了
app.get('/', fn)
Run Code Online (Sandbox Code Playgroud)
以上
app.all("*", doSomething);
Run Code Online (Sandbox Code Playgroud)
请记住,Express会按照注册顺序执行中间件功能,直到某些东西发送响应为止
| 归档时间: |
|
| 查看次数: |
5704 次 |
| 最近记录: |