Вам не нужно отправлять все ваши переменные или даже любые из них, на ваш взгляд.В приложении RESTful клиенту будет предложено запросить информацию для ее отображения позже.
В коде сервера у вас будет две «категории» маршрутов.Первые будут предназначены только для обслуживания HTML-страниц, вторые будут использоваться для получения и изменения содержимого с сервера.
Маршруты для обслуживания HTML-страниц:
app.get('/', function(req, res){
res.sendFile(path.resolve('views/index.html'));
});
app.get('/login', function(req, res){
res.sendFile(path.resolve('views/login.html'));
});
Маршрутычтобы получить и изменить переменные с сервера:
app.get('/api/variable1', function(req, res){
var variable1 = getFromDatabase('variable1'); //get variable from database
res.send(variable1); //send variable to front-end
});
app.post('/api/modifyVariable1', function(req, res){
var newValue = req.body.variable1;
modifyVariableInDatabase('variable1', newValue); //modify value in database
res.send({success: true}); //send acknowledgement to client
});
В вашем интерфейсе реакции вы будете запрашивать переменные и соответственно обновлять свои состояния для обновления представления.
getVariable1(){
fetch("/api/variable1")
.then((response) => {
return response.json();
}).then((json) => {
this.setState({variable1: json}); //update 'variable1' in our state
}).catch((err) => {console.log(err);});
}
Если вы хотите отправить переменную непосредственно в представление, вместо этого вы получите ее как можно скорее в React: в методе жизненного цикла componentDidMount()
.
componentDidMount(){
this.getVariable1();
}
Надеюсь, это имеет смысл для вас.