[Nodo] Use express para escribir la interfaz Day2

Este artículo es para que el autor aprenda notas de Nodo, para ser perfeccionado, bienvenido a intercambiar y aprender juntos.

1. Preparación

1. Crea un servidor básico

//导入express
const express = require('express')

//创建web服务器
const app = express()

//启动服务器
app.listen(8083,()=>{
    
    
    console.log('express server running at http://127.0.0.1:8083')
})

2. Cree un módulo de enrutamiento API

const express = require('express')
 
const router = express.Router()
 
//在这里挂载对应的路由
 
module.exports = router

3. Importe el módulo de enrutamiento creado en el archivo del servidor

const express = require('express')
const router = require('./8.apiRouter') 
const app = express()

app.use('/api', router)

app.listen(8083, () => {
    
    
    console.log('http://127.0.0.1:8083');
})

2. Uso básico

1. Escriba la interfaz GET

Escriba el siguiente código en el archivo de enrutamiento:

//在这里挂载对应的路由
router.get('/get',(req,res)=>{
    
    
	//获取到客户端通过查询字符串,发送到服务器的数据
    const query = req.query;
    //调用res.send()方法,把数据响应给客户端
    res.send({
    
    
        status:0,//0表示成功,1表示失败
        message:"GET请求成功",//状态的描述
        data:query//需要响应的数据
    })
})

El resultado de usar Post man request es el siguiente:

inserte la descripción de la imagen aquí

2. Escriba la interfaz POST

Si desea obtener los datos del cuerpo de la solicitud en formato codificado en URL, debe configurar el middleware para analizar los datos del formulario en el archivo js del servidor:

//配置解析表单数据的中间件
app.use(express.urlencoded({
    
    extended:false}))

Escriba el siguiente código en el archivo de enrutamiento:

router.post('/post', (req, res) => {
    
    
    //通过req.body获取请求体中包含的url-encoded格式的数据
    const body = req.body
    res.send({
    
    
        status: 0,//0表示成功,1表示失败
        message: "POST请求成功",//状态的描述
        data: body//需要响应的数据 
    })
})

El resultado de usar Post man request es el siguiente:

inserte la descripción de la imagen aquí

3. Todos los códigos

1. archivo del servidor

const express = require('express')
const router = require('./8.apiRouter')
const app = express()

//配置解析表单数据的中间件
app.use(express.urlencoded({
    
    extended:false}))

app.use('/api', router)

app.listen(8083, () => {
    
    
    console.log('http://127.0.0.1:8083');
})

2. Archivo de enrutamiento

const express = require('express')
const router = express.Router()

router.get('/get', (req, res) => {
    
    
    const query = req.query
    res.send({
    
    
        status: 0,//0表示成功,1表示失败
        message: "GET请求成功",//状态的描述
        data: query//需要响应的数据
    })
})

router.post('/post', (req, res) => {
    
    
    //通过req.body获取请求体中包含的url-encoded格式的数据
    const body = req.body
    res.send({
    
    
        status: 0,//0表示成功,1表示失败
        message: "POST请求成功",//状态的描述
        data: body//需要响应的数据 
    })
})
module.exports = router

4. Problemas entre dominios

1. Use el middleware CORS para resolver problemas entre dominios

CORS es un middleware de terceros de Express. Al instalar y configurar el middleware CORS, puede resolver fácilmente problemas entre dominios.
Los pasos a utilizar son los siguientes:

  1. Ejecute npm i cors para instalar el middleware
  2. Importar middleware con const cors = require('cors')
  3. Llamado antes del enrutamientoapp.use(cors()) configurar el software intermedio

2. Encabezado de respuesta CORS Access-Control-Allow-Origin

Un campo puede llevarse en el encabezado de respuesta Access-Control-Allow-Origin, y su sintaxis es la siguiente:

Access-Control-Allow-Origin: <origin> | *

Entre ellos, el valor del parámetro origen especifica elURL de dominio externo que pueden acceder a este recurso

Por ejemplo, los siguientes valores de campo solo permiten solicitudes de https://www.baidu.com:

res.setHeader('Access-Control-Allow-Origin','https://www.baidu.com')

Si el valor del campo especificado es un comodín *, significa que se permiten solicitudes de cualquier dominio:

res.setHeader('Access-Control-Allow-Origin','*')

3. Encabezado de respuesta CORS Access-Control-Allow-Headers

De forma predeterminada, CORS solo admite que el cliente envíe los siguientes 9 encabezados de solicitud al servidor:
Aceptar, Aceptar idioma, Contenido-Idioma, DPR, Enlace descendente, Guardar datos, Ancho de ventana gráfica, Ancho, Tipo de contenido (los valores son limitado a texto /multiparte sin formato/aplicación de datos de formulario/x-www-form-urlencoded uno de los tres)

Si el cliente envía un encabezado de solicitud adicional al servidor, debe declarar el encabezado de solicitud adicional a través de este encabezado de respuesta en el lado del servidor; de lo contrario, la solicitud fallará esta vez.

Instrucciones:

res.setHeader('Access-Control-Allow-Headers','Content-Type,X-Custom-Header')

4. Encabezado de respuesta CORS Acceso-Control-Permitir-Methods

De forma predeterminada, CORS solo admite clientes para iniciar solicitudes GET, POST, HEAD.

Si el cliente desea PUT、DELETEsolicitar recursos del servidor a través de otros métodos, debe especificar el método HTTP permitido por la solicitud real a través de Access-Control-Allow-Methods en el lado del servidor
.

//只允许使用POST、GET、DELETE、HEAD请求方法
res.setHeader('Access-Control-Allow-Methods','POST','GET','DELETE','HEAD')

//允许所有的HTTP请求方法
res.setHeader('Access-Control-Allow-Methods','*')

Supongo que te gusta

Origin blog.csdn.net/Macao7_W/article/details/127439714
Recomendado
Clasificación