在reactJS组件

时间:2018-03-08 17:29:48

标签: node.js reactjs api

所以我正在创建一个应用程序,我必须创建一个nodeJS服务器,我必须在客户端显示API调用(reactJS)。但是,当我调用fetch()方法时,客户端没有显示任何内容,只能在终端的服务器端显示。我可能不知道如何正确地做到这一点,所以我只是想知道你们中是否有人知道我做错了什么,我只是想学习,就是这样。这是我服务器端的一小部分:

const express = require('express');
const router = express.Router();
var key = "v2xcfdfa76db9f173028d97859c47a8ce0554321029a3fbfc06a26f81b1655bd3d9";
var BitGo = require('bitgo');
var client = new BitGo.BitGo({ env: 'test', accessToken: key });

router.get('/user/me', (req, res, next) => {
client.me({}, function callback(err, user) {
  if (err) {
  console.dir(err);
}
console.dir(user);
  });
});

module.exports = router;

这是客户方:

import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';

class App extends Component {
constructor(props) {
super(props);
this.state = {
  data: ""
    }
 }

 componentDidMount() {
 return fetch('/user/me')
.then((response)=> response.json())
.then((responseJson)=>{
  this.setState({
    data: responseJson.data
  });
})
 }
  render() {
  return (
  <div className="App">
    <header className="App-header">
      <img src={logo} className="App-logo" alt="logo" />
      <h1 className="App-title">Welcome to React</h1>
    </header>
    <p className="App-intro">
      Data from our API: <b>{this.state.data}</b>
    </p>
  </div>
   );
  }
}

export default App;

1 个答案:

答案 0 :(得分:1)

你实际上并没有从服务器返回任何东西...或者看起来你提供给我们的代码有限。

router.get('/user/me', (req, res, next) => {
  client.me({}, function callback(err, user) {
    if (err) {
      console.dir(err);
      res.status(400).send(err)
    }

    console.dir(user);
    res.send({ data: user })
  });
});

我假设user是JSON可序列化的(并且它是您希望从服务器返回的数据)。