我有此生产代码,并且我的路线带有'/ _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'而没有下划线的路由中在“ / *”上?
答案 0 :(得分:0)
Express根据您的代码中的顺序匹配路由。如果通配符路由在任何其他路由之前,并且没有条件调用next(),则任何后续路由都将不匹配。换句话说,您需要将/ _api /路由处理放在/ *路由之前。