我使用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