据我所知,服务SPA的事实上的方法是为GET请求实现catch all方法。那么,如果我同时托管API并从同一服务器提供SPA,并且需要检索资源,例如,会发生什么? /users
?
如何在API服务器为您的SPA提供服务的设置中处理路由API调用/资源?
e.g。使用快递:
import express from 'express'
import path from 'path'
const app = express()
const port = 3000
app.use(express.static(path.resolve(__dirname, '../client/dist')));
// Conflict here <---------------------
app.get('/users', (req,res) => {
// respond with users
})
// And here <---------------------
app.all('*', (req, res) => {
res.sendFile(path.resolve(__dirname, '../client/dist', 'index.html'));
})
app.listen(process.env.PORT || port, () => {
console.log(`App listening on ${process.env.PORT || port}`)
})
Intuition告诉我在为API调用的/api
资源实现异常的同时,为SPA的GET请求实现catch all。但是,通过浏览器访问/api
存在问题。
任何想法都非常感激。
答案 0 :(得分:0)
添加好主意会在您的其余API端点上添加api
前缀。与您的用户API /api/users
一样。