如何更改 Express 中的请求函数顺序?
How to change request function order in Express?
我正在尝试将 Ghost 应用程序用作我的主 Express 应用程序的子应用程序,运行 在“/blog”路径上。
Ghost文档推荐的方式,我应该有这个
ghost().then(function (ghostServer) {
app.use("/blog", ghostServer.rootApp);
ghostServer.start(app);
});
但是,我采用了 Express 的首选方法,其中 app.js 的末尾包括 404 情况下的错误处理(在 public 文件夹,在 "/blog") 的情况下也是如此。这意味着 app.use("/blog", ghostServer.rootApp);
在 错误检查之后出现 ,因此,如果我注释掉我的错误处理(显然,我没有真的很想做),否则我无法访问它。
我该如何解决这个问题?
我不确定是否应该将此作为答案,但我有一个解决方案,我认为这不是最好的解决方案,但它似乎确实有效。
var gs = null;
ghost().then(function (ghostServer) {
gs = ghostServer;
ghostServer.start(app);
});
app.use('/blog', function (req, res, next) {
if (gs) gs.rootApp(req, res, next);
else next();
});
这样,app.use实际上是被同步调用了。但是,这绝对不是最有效的方法(因为每次向“/blog”发出请求时都会向堆栈添加一个函数调用)
我希望看到比这更好的答案。
我正在尝试将 Ghost 应用程序用作我的主 Express 应用程序的子应用程序,运行 在“/blog”路径上。
Ghost文档推荐的方式,我应该有这个
ghost().then(function (ghostServer) {
app.use("/blog", ghostServer.rootApp);
ghostServer.start(app);
});
但是,我采用了 Express 的首选方法,其中 app.js 的末尾包括 404 情况下的错误处理(在 public 文件夹,在 "/blog") 的情况下也是如此。这意味着 app.use("/blog", ghostServer.rootApp);
在 错误检查之后出现 ,因此,如果我注释掉我的错误处理(显然,我没有真的很想做),否则我无法访问它。
我该如何解决这个问题?
我不确定是否应该将此作为答案,但我有一个解决方案,我认为这不是最好的解决方案,但它似乎确实有效。
var gs = null;
ghost().then(function (ghostServer) {
gs = ghostServer;
ghostServer.start(app);
});
app.use('/blog', function (req, res, next) {
if (gs) gs.rootApp(req, res, next);
else next();
});
这样,app.use实际上是被同步调用了。但是,这绝对不是最有效的方法(因为每次向“/blog”发出请求时都会向堆栈添加一个函数调用)
我希望看到比这更好的答案。