У меня есть компонент React, который является GaleryPage, и я хочу показать список информации, которую я нашел с моей стороны Back end, которая является file_name и Type_contract. Это мой код задней стороны:
app.post('/convert', upload.single('file'),(req, res) =>{
if (req.file){
let file= req.file.filename
let Type_contract = 'Contract'
let file_name = path.basename(file,path.extname(file))
console.info(file_name);
console.info(Type_contract);
}
res.redirect('/');
и вот мой компонент React:
import React, { Component } from 'react';
import 'bootstrap/dist/css/bootstrap.min.css';
class GaleryPage extends Component {
constructor(props) {
super(props);
this.state = {
file_name: '',
Type_contract:''
};
}
componentDidMount() {
const data = new FormData();
fetch('http://localhost:8080/upload',{
method: 'POST',
body: data
})
.then((file_name,Type_contract) => this.setState({
file_name: file_name,
Type_contract:Type_contract
})
)}
render() {
return (
<div>
<ul>
<li file_name = {this.state.file_name}>file_name=
{this.state.file_name}</li>
<li Type_contract = {this.state.Type_contract}>Type_contract=
{this.state.Type_contract}</li>
</ul>
</div>
);
}
}
export default GaleryPage;
когда я пробую этот код, я нахожу всегда пустую страницу и никакие данные не отображаются
Кроме того, в вашем экспресс-коде я не вижу никакой части, где вы действительно отправляете данные.
извините, я новичок в React Js и Node Js, чтобы отправлять данные, я пробовал res.json (), но это все та же проблема
попробуйте это: fetch (url) .then (response => response.json ()) .then (response => {console.info (response)})
Вы проверили, установлены ли данные в конечной точке экспресс-сервера? Кроме того, внутренний код, который вы опубликовали, имеет другую конечную точку, чем вы вызываете в React (в экспрессе у вас есть convert, а в React у вас есть upload
маршрут - это не проблема, потому что оба маршрута / convert и / upload имеют один и тот же код, но даже я заменил его, это все еще та же проблема, я получаю file_name: пустое поле и данные не загружены





Проверьте свой объект ответа ... в основном это
.then((file_name,Type_contract). Теперь вы просто пытаетесь установить состояние, но знаете ли вы, что содержится вfile_name,Type_contractиз ответа ?! Я думаю, что там должен быть только один ответ какJSON, а не два, как у вас сейчас. Проверьте документы здесь facebook.github.io/react-native/docs/network.html. Это поможет вам лучше понять.