У меня проблема с реакцией SSR. Я использую agent-маршрутизатор в качестве менеджера маршрутов приложений.Как реагировать на серверный рендеринг на RESTful API (реакция-маршрутизатор + экспресс)?
В стороне сервера, он может выглядеть следующим образом (server.js):
var app = express();
app.get("*",function(req, res){
match({routes:AppRoutes, location:req.url},
function(err, redirectLocation, renderProps){
if (error) {
res.send(500, error.message)
} else if (redirectLocation) {
res.redirect(302, redirectLocation.pathname + redirectLocation.search)
} else if (renderProps) {
res.send(200, renderToString(<RoutingContext {...renderProps} />))
} else {
res.send(404, 'Not found')
}
});
});
В случае реакции-маршрутизатор потребляет все GET
маршруты, если мне нужно RESTful API на стороне сервера, как я отделить его от реактивного маршрута?
И если у меня есть компонент в интерфейсе:
class Post extends Component{
componentDidMount(){
fetch('/api/post')
.then(function(response){
//change component state or do other
})
.catch(function(err){
//handle error
})
}
render(){
//
}
}
Как этот компонент связи с сервером с помощью RESTful API?
Может ли Express предоставить такую структуру API RESTful?
app.get("/api/post",function(){
//do something and response
});
Я действительно не понимаю.
Большое спасибо за решение моего вопроса! В этот день я узнал о реакции маршрутизатора и запутался в рендеринге на стороне сервера. Я даже пытался использовать Regex для соответствия маршрутам (ужасный путь!). Я попробовал этот ответ только сейчас, и он работает! – Betamee