我使用Node/Express作爲API代理服務器,並且想知道是否可以呈現所有GET路由的HTML(index.html)頁面以及在相同的端口上公開API端點。我正在使用客戶端路由(react-router)。在同一端口上提供靜態index.html和API
例如:
// Always return the main index.html, so react-router render the route in the client
app.get('*', (req, res) => {
const html = renderHTML(req, res);
res.send(html)
});
// Expose API
app.all('/api/*', (req, res, next) => {
proxyRequest(...)
});
的問題是,這樣做做GET請求時,第一app.get()
漁獲它(例如:fetch('/api/accounts')
)。
我需要能夠對任何API端點路由發出任何請求(除了/
)並讓客戶端發送任何方法(GET,PUT,POST ...)。
我可以爲所有客戶端路由服務index.html
和在同一個端口上有GET端點嗎?我可以爲所有路線提供html ,但以/api/
爲前綴?
'express.static'如何爲API服務? – Himmel
不,'express.static'不會提供API。你現有的陳述將做到這一點。這將爲'/'parth –
上的index.html提供好像你可能不完全理解我的問題。這是一個路由問題,而不是一個靜態文件。 – Himmel