无法将响应字符串从我的Express服务器发送到React前端

时间:2019-03-24 16:05:21

标签: reactjs express cors response httpresponse

我想用字符串格式的URL答复Fetch请求。我看过的示例看起来很简单,但我相信我的cors中间件可能会弄乱某些东西。

这是我的服务器:

const express = require('express');
const cors = require('cors');
const db = require('./database/db');
const app = express();

app.use(cors());
app.use(require('./router.img.js'));
app.listen(4000, console.log('Listening on 4000'));

module.exports = app;

在这里我发送答复:

exports.postImage = (req, res) => {
  let sliceIndex = req.file.originalname.indexOf('.');
  let fileType = req.file.originalname.slice(sliceIndex);
  let url = "https://instaimages.sfo2.digitaloceanspaces.com/" + 
  req.body.number + fileType;

  res.set('Content-Type', 'text/html'); 
  res.send(url);
};

我在前端看到一个响应,但是它不包含URL字符串。外观如下:

Response {type: "cors", url: "http://localhost:4000/upload/", 
redirected: false, status: 200, ok: true, …}

1 个答案:

答案 0 :(得分:1)

尝试

fetch('/your/api/endpoint')
  .then(res => res.text())
  .then(text => console.log(text));

fetch实际上解析为Response对象,您需要从该对象执行附加步骤以提取所需的数据。这里的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch