Angularjs Express app.all干扰API调用

Angularjs Express app.all干扰API调用,angularjs,express,Angularjs,Express,我正在构建一个MEAN应用程序,Angular正在处理客户端定义的任何路由,如“/profile”、““/stream”等 因为我在Angular中使用HTML5模式,所以我必须将以下内容添加到我的express配置中,以允许从浏览器URL栏访问和输入干净的URL: app.all('/*', function (req, res, next) { res.sendfile('views/dashboard.html', { root: __dirname }); }); 但是,这会干

我正在构建一个MEAN应用程序,Angular正在处理客户端定义的任何路由,如“/profile”、““/stream”等

因为我在Angular中使用HTML5模式,所以我必须将以下内容添加到我的express配置中,以允许从浏览器URL栏访问和输入干净的URL:

app.all('/*', function (req, res, next) {
    res.sendfile('views/dashboard.html', { root: __dirname });
});

但是,这会干扰我的API,任何API调用都会返回空白,因此,例如,如果我访问users/active/profile,它会返回当前用户详细信息的JSON响应,浏览器会将您重定向到主页。

Express将按您声明的顺序处理请求URL(路由),由于
*
是之前所有其他路线声明的例外,因此您需要将此代码移到路线的末尾:

  /** this needs to be your last route **/
    app.all('/*', function (req, res, next) {
        res.sendfile('views/dashboard.html', { root: __dirname });
    });

当我将其移动到文件末尾时,这会中断路由,角度入口点不再被识别。这个答案似乎是正确的,除了一件事:
app。如果代码中存在错误处理中间件,则应在错误处理中间件之前声明所有