我试图将Ghost应用程序用作我的主要Express应用程序的子应用程序,在" / blog"路径。
Ghost文档推荐它的方式,我应该有这个
ghost().then(function (ghostServer) {
app.use("/blog", ghostServer.rootApp);
ghostServer.start(app);
});
然而,我采用了Express的首选旋转,其中app.js的结尾包含404的错误处理(该路径既不作为视图也不作为公共文件发现文件夹,在" / blog")的情况下为true。这意味着app.use("/blog", ghostServer.rootApp);
在错误检查后出现,因此,如果我注释掉我的错误处理,我可以访问我的Ghost服务器(显然,我不是真的我想这样做,否则我无法访问它。
我该如何解决这个问题?
答案 0 :(得分:0)
我不确定我是否应该将此作为答案,但我有一个解决方案,我认为这不是最好的方法,但它似乎确实有效。
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”发出请求时都会向堆栈添加一个函数调用)
我希望看到比这更好的答案。