快递路线不是落在“ / _api /”上,而是落在“ / *”上?

时间:2019-07-03 07:11:50

标签: express react-router

我有此生产代码,并且我的路线带有'/ _api /...'

if (process.env.NODE_ENV === 'production') {
  this.app.set('trust proxy', 1); // trust first proxy <--- production
  sessionConfig.cookie.secure = true; // serve secure cookies
  //Serve any static files

  this.app.use(
    express.static(path.join(__dirname, '../../frontend/build'))
  );
  // Handle React routing, return all requests to React app
  this.app.get('/*', (req, res) => {
    res.sendFile(
      path.join(__dirname, '../../frontend/build', 'index.html')
    );
  });
}

但是当我尝试转到例如:'/_api/tests.js'时,我得到了index.html响应,如何使它落在带有下划线'/_api/tests.js'而没有下划线的路由中在“ / *”上?

1 个答案:

答案 0 :(得分:0)

Express根据您的代码中的顺序匹配路由。如果通配符路由在任何其他路由之前,并且没有条件调用next(),则任何后续路由都将不匹配。换句话说,您需要将/ _api /路由处理放在/ *路由之前。