【问题标题】:How to write requests and fetch如何编写请求和获取
【发布时间】:2021-12-14 14:31:13
【问题描述】:

我需要帮助如何在我的服务器 (index.js) 中正确编写 GET 和 POST 请求,以及如何在 App.js 中正确编写 fetch。

我已经阅读了 Stackoverflow 上的线程,并搜索了有关如何编写请求和获取的信息,但我发现如何将示例添加到我自己的代码中非常困难。我已经尝试了三周不同的解决方案,但感觉无处可去。所以,请帮忙。我觉得这不应该那么困难,但出于某种原因。除了这里,我没有人可以寻求帮助。

我正在使用 URL http://localhost:8080/reviews

这是我的写作方式还是我必须添加任何内容? (在 Index.js 中)

app.get("/reviews", (request, response) => {
    response.status(201).json
  });

 app.post('/reviews', async (request, response) => {
    response.status(201).json
  });

在 App.js 中,我想创建一个 fetch 来获取所有已写入的现有评论(目前没有,因为页面尚未完成)并且我希望能够发布新评论。当我发布新评论时,我希望页面能够加载并更新新评论和所有其他书面评论。

我现在有这样的东西,但我不知道最后的部分应该是什么?

const reviewsURL = "http://localhost:8080/reviews"

export const App = () => {
  const [existingReviews, setExistingReviews] = useState([])
  const [newReview, setNewReview] = useState('')


  const fetchReviews = () => {
    fetch(reviewsURL, {'

    // WHAT ELSE TO WRITE HERE ???

     useEffect(() => {
    fetchReviews();
  }, []);


const postReview = (event) => {
    event.preventDefault();

    fetch(reviewsURL, {
      method: 'POST',
    
     // WHAT DO I WRITE HERE ???
 
  }
  return (
    <>

<NewReview
      newReview={newReview}
      setNewReview={setNewReview}
      handlesubmit={postReview}
      />

{<AllReviews 
        allReviews={existingReviews} 
        />}
    </>
  )
}

【问题讨论】:

  • app.get("/reviews" - 你的服务器端在 Express.js 上吗?还是其他一些框架/库?
  • @TKoL 我正在使用 Node / Express。这只会是本地的,我不会上传到 GitHub 以外的其他页面。

标签: javascript reactjs post get fetch


【解决方案1】:

在 express.js 中,response.status(201).json 不是返回 JSON 响应的方式。 .json 是一个函数,所以你可以传递一个 JSON 对象,response.status(201).json(resultsArray); 或类似的东西。

很多人更喜欢使用库来发出请求,而不是使用fetch。 Axios 是一个普遍的最爱,很多人发现它更容易使用。

如果您更喜欢使用fetch 而不是更简单的库,那很好,fetch 仍然足够简单,可以继续使用。 Here's some documentation on how to use fetch

注意:fetch(url) 函数返回一个承诺,所以你要么.then 返回的承诺,要么await 它在一个异步函数中。如果您期待 JSON 响应,文档中示例代码中的模式需要额外的步骤来获取内容:

const result = await fetch(url);
const data = await result.json();

这是针对 GET 请求的,但文档还显示了如何处理 POST 请求。

【讨论】:

    猜你喜欢
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 2021-04-02
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多