成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何連接React和Node,Express

開發(fā) 前端
在本文中,我將引導你創(chuàng)建一個簡單的 React 應用,以及一個簡單的 Node/Express API,并將兩者相互連接。

[[270570]]

在本文中,我將引導你創(chuàng)建一個簡單的 React 應用,以及一個簡單的 Node/Express API,并將兩者相互連接。

我不會詳細介紹本文中提到的任何技術,但是我會留下鏈接,以便你想了解更多信息。

您可以在我為本教程制作的代碼庫中找到源碼。

譯注:嚶嚶嚶,我也寫了Demo的... client-react-001api-node-001 

這里的目標是為您提供有關如何設置和連接前端客戶端和后端API的實用指南。

在我們開始之前,確保您的機器上已經(jīng)安裝了 Node.js

創(chuàng)建項目主目錄

在終端,導航到你要保存項目的目錄。現(xiàn)在為您的項目創(chuàng)建一個新目錄并導航到它: 

  1. mkdir my_awesome_project  
  2. cd my_awesome_project 

創(chuàng)建一個 React 應用

這個過程非常簡單。

我們將使用 Facebook 的 create-react-app 來... 你猜對了,簡單的創(chuàng)建一個名為 client 的應用程序: 

  1. npx create-react-app client  
  2. cd client  
  3. npm start 

讓我們看看這里做了什么:

1.使用 npm 的 npx 創(chuàng)建一個 React 應用,并將其命名為 client。

2.cd (更改目錄)到客戶端目錄中。

3.啟動了應用程序。

在瀏覽器中,訪問:http://localhost:3000/

如果一切正常,您將看到 React 歡迎頁面。恭喜!這意味著您現(xiàn)在在本地計算機上運行了一個基本的 React 應用程序。是不是很簡單?

要停止您的 React 應用程序,只需在終端按下 Ctrl + c 即可。

創(chuàng)建一個 Express 應用

好的,這將與前一個示例同樣簡單。不要忘記回到項目的根文件夾。

我們將使用 Express Application Generator 快速生成應用的框架,并將其命名為 api : 

  1. npx express-generator api  
  2. cd api  
  3. npm install  
  4. npm start 

讓我們看看這里做了什么:

1.使用 npm 的 npx 在全局安裝 express-generator 。

2.使用 express-generator 快速創(chuàng)建一個 express 應用,并將其命名為 : api。

3.進入 API 目錄。

4.安裝所有依賴項。

5.啟動應用。

在瀏覽器中,訪問:http://localhost:3000/

如果一切正常,您將看到 Express 歡迎頁面。恭喜!這意味著您現(xiàn)在在本地計算機上運行了一個基本的 Express 應用程序。是不是很簡單?

要停止您的 Express 應用程序,只需在終端按下 Ctrl + c 即可。

在 Express 中配置新的路由

好啦,接下來就是動手時間。是時候打開你最喜歡的代碼編輯器(我正在使用 VS Code)并導航到你的項目文件夾。

如果您將 React應用 命名為 client,Express應用 命名為 api,你講找到兩個主要文件夾:client 和 api。

1.在 api 目錄中,打開 bin/www 并將第15行的端口號由 3000 改為 9000。我們將同時運行兩個應用程序,這樣做可以避免問題。修改結果如下: 

  1. // my_awesome_project/api/bin/www  
  2. var port = normalizePort(process.env.PORT || '9000'); 

2.在 api/routes 上,創(chuàng)建一個 testAPI.js 文件并粘貼如下代碼: 

  1. var express = require(“express”);  
  2. var router = express.Router();  
  3. router.get(“/”, function(req, res, next) {  
  4.     res.send(“API is working properly”);  
  5. });  
  6. module.exports = router

3.在 api/app.js 文件中,在第24行插入新路由: 

  1. app.use("/testAPI", testAPIRouter); 

4.并在第9行引入新的路由文件 

  1. var testAPIRouter = require("./routes/testAPI"); 

5.恭喜您!您已經(jīng)創(chuàng)建了新的路由。

如果您啟動 api 應用程序(在終端中,導航到 api 目錄,輸入 npm start),并在瀏覽器中訪問 http://localhost:9000/testAPI ,您將看到以下消息:API is working properly 。

譯注:可以使用 npm 模塊 forever來守護你的進程,方便你之后在其他機器上部署服務。

將 React Client 連接到 Express API

1.讓我們使用代碼編輯器打開 client 目錄,編輯 app.js 。

2.我將會使用 Fetch API 從 api 模塊獲取數(shù)據(jù)。在 Class 聲明之后,render 方法之前粘貼如下代碼: 

  1. constructor(props) {  
  2.     super(props);  
  3.     this.state = { apiResponse: "" };  
  4.  
  5. callAPI() {  
  6.     fetch("http://localhost:9000/testAPI")  
  7.         .then(res => res.text())  
  8.         .then(res => this.setState({ apiResponse: res }));  
  9.  
  10. componentWillMount() {  
  11.     this.callAPI();  

3.在 render 方法中,你會找到一個 <p> 標簽。讓我們用它來展示 API 的內容。 

  1. <p className="App-intro">;{this.state.apiResponse}</p> 

這是,該文件展示如下:

讓我們看看這里做了什么:

1.在第6到9行,我們插入了一個初始化默認狀態(tài)的構造函數(shù)。

2.在第11到16行,我們插入了方法 callAPI(),它將從API獲取數(shù)據(jù),并存儲在this.state.apiResponse上。

3.在第18行到第20行,我們插入了一個名為 componentDidMount() 的 react 生命周期方法,該方法將在組件安裝后執(zhí)行 callAPI() 方法。

4.***,在第29行,我使用 <p> 標簽在我們的客戶端頁面上顯示一個段落,其中包含我們從 API 獲取的文本。

有沒有搞錯!!CORS ?

到這里,我們差不多完成了。當我們啟動應用程序(client 和 API),訪問 http://localhost:3000/ , 發(fā)現(xiàn)并沒有看到預期的結果。如果你打開 chrome 開發(fā)者工具,您將在控制臺找到原因:

Failed to load http://localhost:9000/testAPI: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

這很好解決。我們只需要在我們的API中添加CORS允許跨域請求。有關 CORS ,我們可以查看上面的鏈接了解更多信息。

1.在終端中導航到 api 目錄,并安裝 CORS 依賴。 

  1. npm install --save cors 

2.打開 my_awesome_project/api/app.js 文件,添加如下代碼: 

  1. var cors = require("cors");  
  2. ...  
  3. app.use(cors()); 

API app.js 文件最終應該是這樣的:

干的漂亮。我們完成了!!

現(xiàn)在使用 npm start 啟動兩個應用 client 和 API。

訪問 http://localhost:3000/ 你會看到如下內容:

[[270571]]

當然,這個項目的代碼不會很多,但卻是全棧項目的開始。你可以在這個倉庫中,找到項目的所有代碼。

接下來,我會補充一些教程,比如將它連接到 MongoDB 數(shù)據(jù)庫,甚至是在 Docker 容器中運行它。

譯注:這是我部署的應用地址,下一篇我也會翻譯吧。

就像我的一位好友對我說到:   

  1. Be Strong and Code On!!! 

...別忘了今天也是美好的一天😘

本文已經(jīng)聯(lián)系原文作者,并授權翻譯,轉載請保留原文鏈接 

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2021-08-20 16:05:28

JavaScript node.js 應用安全

2014-07-11 14:16:15

AbsurdJSExpress

2011-10-18 10:17:13

Node.js

2021-04-08 18:39:57

JavaScriptExpress區(qū)塊鏈

2024-02-20 01:53:01

ReactFlutter開發(fā)

2020-09-06 09:57:34

Node框架開發(fā)

2020-08-07 10:40:56

Node.jsexpress前端

2012-02-08 13:49:53

Node.js

2021-06-01 09:27:52

視頻動畫Remotion

2010-12-30 11:13:36

卸載SQL Serve

2022-03-18 14:09:52

ReactJavaScript

2021-06-04 06:01:49

Yarn workspTypeScript云原生

2022-06-26 07:18:17

數(shù)據(jù)庫NodePostgreSQL

2023-08-21 15:18:29

開發(fā)Node.js后端

2017-04-24 08:31:26

Node.jsExpress.jsHTTP

2021-07-03 17:43:03

Node.jsNode變量

2021-06-15 15:03:21

MongoDBNode.jsCRUD

2022-02-04 22:18:28

React路由應用

2023-01-24 08:50:22

2015-07-03 10:41:47

ReactWebpack
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美国产毛片在线 | 欧美簧片 | 日韩精品一| 欧美精品一区二区三区四区 在线 | 国产成人高清视频 | 91久久精品日日躁夜夜躁欧美 | 欧美a∨ | 97av视频 | 中文在线一区二区 | 99re在线视频免费观看 | 欧美久久久久 | 精品国产免费人成在线观看 | 麻豆天堂| 91精品国产高清一区二区三区 | 国产精品久久久乱弄 | 日本在线免费 | 久久免费精品视频 | 激情黄色在线观看 | 国产sm主人调教女m视频 | 国产精品久久一区二区三区 | 91精品国产综合久久久久久 | 久久久国产一区二区三区四区小说 | 日韩免费在线观看视频 | 精品99久久 | 国产日韩精品一区二区 | 九九热国产视频 | 成人在线观 | 免费人成在线观看网站 | 日韩aⅴ在线观看 | 手机在线不卡av | 国产成人精品久久二区二区91 | 国产成人精品久久二区二区 | 午夜无码国产理论在线 | 天天看天天操 | 国产精品视频网站 | 亚洲欧洲一区二区 | 亚洲色图图片 | 日韩精品在线免费 | 蜜臀网 | 国户精品久久久久久久久久久不卡 | 日韩黄 |