Home Web Front-end JS Tutorial How to use axios in node.js

How to use axios in node.js

Jun 23, 2018 pm 04:21 PM
axios node.js Experience

This article mainly introduces a summary of the experience of using axios in node.js, and analyzes the errors encountered in the process. Please refer to it.

Axios is a Promise-based HTTP library that can be used in browsers and node.js. Because of Youda’s recommendation, axios has become more and more popular. I have encountered some problems using axios in recent projects, so I will take this opportunity to summarize them. If there are any mistakes, please feel free to correct them.

Function

The browser initiates an XMLHttpRequests request

The node layer initiates an http request

Supports Promise API

Intercept requests and responses

Convert request and response data

Cancel request

Automatically convert JSON data

The client supports defense against XSRF (cross-site request forgery) )

Compatible

Use

npm
Copy after login
npm install axios
Copy after login
bower
Copy after login
bower install axios
Copy after login

cdn

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
Copy after login

Initiate a request

GET

axios.get(&#39;/user?ID=123&#39;)
  .then( res => {
    console.info(res)
  }).catch( e => {
    if(e.response){
    //请求已发出,服务器返回状态码不是2xx。
      console.info(e.response.data)
      console.info(e.response.status)
      console.info(e.response.headers)
    }else if(e.request){
      // 请求已发出,但没有收到响应
      // e.request 在浏览器里是一个XMLHttpRequest实例,
      // 在node中是一个http.ClientRequest实例
      console.info(e.request)
    }else{
      //发送请求时异常,捕捉到错误
      console.info(&#39;error&#39;,e.message)
    }
    console.info(e.config)
  })
// 等同以下写法
axios({
  url: &#39;/user&#39;,
   method: &#39;GET&#39;,
  params: {
    ID: 123
  }
}).then( res => {
  console.info(res)
}).catch( e=> {
  console.info(e)
})
Copy after login

POST

axios.post(&#39;/user&#39;, {
  firstName: &#39;Mike&#39;,
  lastName: &#39;Allen&#39;
}).then( res => {
  console.info(res)
}).catch( e => {
  console.info(e)
})
// 等同以下写法
axios({
  url: &#39;/user&#39;,
  method: &#39;POST&#39;,
  data: {
    firstName: &#39;Mike&#39;,
    lastName: &#39;Allen&#39;
  }
}).then( res => {
  console.info(res)
}).catch( e => {
  console.info(e)
})
Copy after login

Notes

Params are used when passing parameters using the GET method, and the official documentation introduces: params are the URL parameters to be sent with the request. Must be a plain object or a URLSearchParams object. Translated as: params is sent as a parameter in the URL link in the request, and it must be a plain object or a URLSearchParams object. Plain object refers to an ordinary object defined in JSON form or a simple object created by new Object(); while the URLSearchParams object refers to an object that can be used to process the query string of the URL using some practical methods defined by the URLSearchParams interface. , that is to say, the params parameters are passed in the form of /user?ID=1&name=mike&sex=male.

When using POST, the corresponding parameter transfer uses data, and data is sent as the request body. This form is also used for PUT, PATCH and other request methods. One thing to note is that the default request body type of POST in axios is Content-Type: application/json (JSON specification is popular), which is also the most common request body type, which means that the serialized json format is used String to pass parameters, such as: { "name" : "mike", "sex" : "male" }; at the same time, the background must receive parameters in the form of supporting @RequestBody, otherwise the front-end parameters will be passed correctly and the background will receive situation.

If you want to set the type to Content-Type:application/x-www-form-urlencoded (browser native support), axios provides two methods, as follows:

Browser side

const params = new URLSearchParams();
params.append(&#39;param1&#39;, &#39;value1&#39;);
params.append(&#39;param2&#39;, &#39;value2&#39;);
axios.post(&#39;/user&#39;, params);
Copy after login

However, not all browsers support URLSearchParams. Check caniuse.com for compatibility, but there is a Polyfill (polyfill: used to implement native APIs that the browser does not support) The code can be vaguely understood as a patch, and at the same time, ensure that the polyfill is in the global environment).

Alternatively, you can also use the qs library to format the data. By default, the qs library can be used after installing axios.

const qs = require(&#39;qs&#39;);
axios.post(&#39;/user&#39;, qs.stringify({&#39;name&#39;:&#39;mike&#39;}));
Copy after login

node layer

querystring can be used in the node environment. Similarly, you can also use qs to format data.

const querystring = require(&#39;querystring&#39;);
axios.post(&#39;http://something.com/&#39;, querystring.stringify({&#39;name&#39;:&#39;mike&#39;}));
Copy after login

Supplement

There is another common request body type, namely multipart/form-data (native browser support), which is commonly used to submit form data a format. Contrast this with x-www-form-urlencoded, where data is encoded into key-value pairs separated by '&', while keys and values ​​are separated by '='. Characters that are not alphabetic or numeric are percent-encoded (URL encoding), which is why this type does not support binary data (multipart/form-data should be used instead).

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.

Related articles:

How to implement the China map in vue vuex axios echarts

Solve the problem of the input box being blocked by the input method

How to solve the problem that the soft keyboard blocks the input box in js

How to implement component interaction in Angular2

The above is the detailed content of How to use axios in node.js. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What should I do if 'Uncaught (in promise) Error: Request failed with status code 500' occurs when using axios in a Vue application? What should I do if 'Uncaught (in promise) Error: Request failed with status code 500' occurs when using axios in a Vue application? Jun 24, 2023 pm 05:33 PM

It is very common to use axios in Vue applications. axios is a Promise-based HTTP client that can be used in browsers and Node.js. During the development process, the error message "Uncaught(inpromise)Error: Requestfailedwithstatuscode500" sometimes appears. For developers, this error message may be difficult to understand and solve. This article will explore this

Choice of data request in Vue: Axios or Fetch? Choice of data request in Vue: Axios or Fetch? Jul 17, 2023 pm 06:30 PM

Choice of data request in Vue: AxiosorFetch? In Vue development, handling data requests is a very common task. Choosing which tool to use for data requests is a question that needs to be considered. In Vue, the two most common tools are Axios and Fetch. This article will compare the pros and cons of both tools and give some sample code to help you make your choice. Axios is a Promise-based HTTP client that works in browsers and Node.

What should I do if 'TypeError: Failed to fetch' occurs when using axios in a Vue application? What should I do if 'TypeError: Failed to fetch' occurs when using axios in a Vue application? Jun 24, 2023 pm 11:03 PM

Recently, during the development of Vue applications, I encountered a common problem: "TypeError: Failedtofetch" error message. This problem occurs when using axios to make HTTP requests and the backend server does not respond to the request correctly. This error message usually indicates that the request cannot reach the server, possibly due to network reasons or the server not responding. What should we do after this error message appears? Here are some workarounds: Check your network connection due to

How to solve the problem of 'Error: Network Error' when using axios in Vue application? How to solve the problem of 'Error: Network Error' when using axios in Vue application? Jun 25, 2023 am 08:27 AM

How to solve the problem of "Error: NetworkError" when using axios in Vue application? In the development of Vue applications, we often use axios to make API requests or obtain data, but sometimes we encounter "Error: NetworkError" in axios requests. What should we do in this case? First of all, you need to understand what "Error:NetworkError" means. It usually means that the network connection

Efficiently utilize Vue and Axios to implement batch processing of front-end data Efficiently utilize Vue and Axios to implement batch processing of front-end data Jul 17, 2023 pm 10:43 PM

Efficiently utilize Vue and Axios to implement batch processing of front-end data. In front-end development, data processing is a common task. When we need to process a large amount of data, processing the data will become very cumbersome and inefficient if there is no effective method. Vue is an excellent front-end framework, and Axios is a popular network request library. They can work together to implement batch processing of front-end data. This article will introduce in detail how to efficiently use Vue and Axios for batch processing of data, and provide relevant code examples.

How to use vue3+ts+axios+pinia to achieve senseless refresh How to use vue3+ts+axios+pinia to achieve senseless refresh May 25, 2023 pm 03:37 PM

vue3+ts+axios+pinia realizes senseless refresh 1. First download aiXos and pinianpmipinia in the project--savenpminstallaxios--save2. Encapsulate axios request-----Download js-cookienpmiJS-cookie-s//Introduce aixosimporttype{AxiosRequestConfig ,AxiosResponse}from"axios";importaxiosfrom'axios';import{ElMess

What should I do if 'Error: timeout of xxxms exceeded' occurs when using axios in a Vue application? What should I do if 'Error: timeout of xxxms exceeded' occurs when using axios in a Vue application? Jun 24, 2023 pm 03:27 PM

What should I do if "Error: timeoutofxxxmsexceeded" occurs when using axios in a Vue application? With the rapid development of the Internet, front-end technology is constantly updated and iterated. As an excellent front-end framework, Vue has been welcomed by everyone in recent years. In Vue applications, we often need to use axios to make network requests, but sometimes the error "Error: timeoutofxxxmsexceeded" occurs.

A complete guide to implementing file upload in Vue (axios, element-ui) A complete guide to implementing file upload in Vue (axios, element-ui) Jun 09, 2023 pm 04:12 PM

A complete guide to implementing file upload in Vue (axios, element-ui) In modern web applications, file upload has become a basic function. Whether uploading avatars, pictures, documents or videos, we need a reliable way to upload files from the user's computer to the server. This article will provide you with a detailed guide on how to use Vue, axios and element-ui to implement file upload. What is axiosaxios is a prom based

See all articles