服务器端或Clint端API调用?

时间:2018-10-10 12:07:03

标签: javascript reactjs api server client-server

如果您正在使用React.js,进行API调用的最佳方法是什么?例如,如果我试图从Google图书API中获取一些图书数据,则应该在客户端使用React.js还是在服务器端进行。为什么在一侧比另一侧更好?谢谢。

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作。

const express = require('express');
const app = express();
const path = require('path');
const fs = require('fs');
const proxy = require('http-proxy-middleware');

app.use(
  '/api',
  proxy({
    target: 'http://api.books.com',
    changeOrigin: true,
    ws: true,
    pathRewrite: { '^/api': '' },
  })
);

const index = fs.readFileSync(path.resolve('./build', 'index.html'), { encoding: 'utf-8' });

app.get('*', (req, res) => {
  res.contentType('text/html').send(index);
});

const server = app.listen(3000, function() {
  const host = server.address().address;
  const port = server.address().port;

  console.log('The server is running at http://%s:%s/', host, port);
});

然后这样调用(引发代理),以使CORS不会出现问题或在以后更换服务器。

fetch('/api/get-books')