Node + Express + Base de datos en la nube de Tencent Desarrollar servicio de URL corta

¡Acostúmbrate a escribir juntos! Este es el primer día de mi participación en el "Nuggets Daily New Plan · April Update Challenge", haz clic para ver los detalles del evento .

1. ¿Qué es el servicio en la nube de Tencent?

Preste más atención al negocio en sí, en lugar del servidor y el entorno. Los desarrolladores solo necesitan escribir el código y, después de escribir el código, enviarlo al servidor de la nube y se puede actualizar automáticamente.

1.1 Concepto defendido por Serveless

  • Función como Servicio, Fass;
  • Backend como servicio, Backend como servicio, Bass;

1.2 Ventajas de los servicios en la nube de Tencent

  • No hay necesidad de considerar ninguna máquina física/máquina virtual Combinado con el flujo de trabajo, el código se envía y se implementa automáticamente y se ejecuta directamente;
  • Sin un servidor, el costo de mantenimiento se reduce considerablemente y la seguridad y la estabilidad son mayores;
  • Todas son nubes elásticamente escalables, por lo que no hay necesidad de preocuparse por problemas de rendimiento;
  • La mayoría de los proveedores de servicios sin servidor cobran según el uso (como el tráfico, el uso de la CPU);

En segundo lugar, la introducción de la función de servicio de URL corta

Por lo general, visite una URL, que puede contener un montón de parámetros, dicha conexión será demasiado larga, la URL corta es una buena solución para este problema

2.1 Los usuarios pueden crear enlaces cortos correspondientes para URL específicas

  • Permite al usuario especificar el slug de cadena corta generado a través de parámetros
  • Si no se especifica una cadena corta, el ID de carácter corto generado automáticamente se usa de forma predeterminada

2.2 Cuando el usuario accede a la cadena corta, salta automáticamente a la URL correspondiente

  • Si la cadena corta no existe, devuelve 404
  • Si existe la cadena corta, registrar el registro de acceso (ip, ua, timestamp)

3. Cree un entorno Node + Express

3.1 Inicialización del proyecto

npm init -y
复制代码

3.2 Instalar expreso

npm i express
复制代码

3.3 Instalar el código de actualización activa de node-dev

npm i node-dev -D
复制代码

3.4 Escribir scripts de desarrollo

Captura de pantalla 2022-04-09 4.19.01 pm.png

3.5 Escribir el programa app.js

const express = require('express')

const app = express()
// 解析json格式, x-www-form-urlencoded格式中间件
app.use(express.json())
app.use(express.urlencoded())

app.post('/create', (req, res) => { 
  console.log(req.body);
  const { url, slug} = req.body
  res.send({url,slug,date: Date.now()})
})


module.exports = app
复制代码

3.6 Escriba e inicie el programa de servicio del nodo

const app = require('./app')

app.listen(3080, () => { 
  console.log('server is ready > http://localhost:3080');
})

复制代码

3.7 Probar el entorno Node + Express

npm run dev
复制代码

imagen.png

  • Probar/crear solicitud con Postman

más tipo de contenido

imagen.png

Pasar datos utilizando el json más utilizado

imagen.pngEntorno construido ok

4. Presentación del SDK del servicio en la nube de Tencent

4.1 Buscar cloudBase en Tencent Cloud Platform

Captura de pantalla 2022-04-09 PM 4.27.32.png

4.2 Cree un servicio de backend (también puede elegir una plantilla en blanco para crear)

Captura de pantalla 2022-04-09 PM 4.28.33.png

4.3 Pago por uso

Captura de pantalla 2022-04-09 4.29.09 pm.png

Si la base de datos de actualización aparece por 4,5 yuanes, puede regresar directamente sin actualizar.

4.4 Entrar en la base de datos y crear una base de datos de enlaces

  • Esta interfaz tiene documentos utilizados por la base de datos, haga clic en ella y busque los documentos relacionados con el nodo.

imagen.png

4.4 La primera convocatoria para solicitar la generación de secretid y secretkey

cloud.tencent.com/document/pr… sin nombre.png

imagen.png

4.5 Nueva identificación y clave de registro .env

Jaja, desactivaré esto más tarde~

imagen.png

4.6 Instalar dotenv para que los datos en .env se puedan leer en el entorno de desarrollo

npm i dotenv -D
复制代码

4.7 Escribir scripts de inicio

-r en package.json primero lee .env y ejecuta el archivo de entrada index.js

"dev": "node-dev -r dotenv/config index.js"
复制代码

4.8 Escribir código para insertar en la base de datos de Tencent Cloud

const express = require('express')
const { init } = require('@cloudbase/node-sdk')
const { SECRET_ID, SECRET_KEY } = process.env

const tcb = init({ env: 'hello-cloudbase-8gvwwq9l939dc1c2', secretId: SECRET_ID, secretKey: SECRET_KEY })

const db = tcb.database()


const app = express()
// 解析json格式, x-www-form-urlencoded格式中间件
app.use(express.json())
app.use(express.urlencoded())

app.post('/create', async(req, res) => { 
  console.log(req.body);
  const { url, slug } = req.body
  await db.collection('links').add({slug,url})
  res.send({link: `http://lcoalhost:3080/${slug}`})
})


module.exports = app
复制代码
  • prueba

imagen.png

imagen.png

- 引入腾讯云开发SDK成功   
复制代码

4.9 Introducción a los nanoides

-  npm i nanoid
复制代码

5. Prueba el primer enlace de shortcode

5.1 crear código corto de pulgada y enlace de código largo

const { nanoid} = require('nanoid')
// 存长短码对应的链接
app.post('/create', async(req, res) => { 
  console.log(req.body);
  // 没有传短码自动生成个6位的id做短码
  const { url, slug=nanoid(6) } = req.body
  await db.collection('links').add({slug,url})
  res.send({link: `http://lcoalhost:3080/${slug}`})
})
复制代码

imagen.png

5.2 /: el parámetro de enrutamiento dinámico de slug toma un enlace de código largo

// 根据短码找到长码,并重定向
app.get('/:slug', async (req, res) => {
  console.log(req.params);
  const { slug } = req.params
  const { data } = await db.collection('links').where({ slug }).get()
  const [link] = data
  res.redirect(link.url)
})
复制代码

de acuerdo

Grabación de pantalla 2022-04-09-9.34.58 pm.gif

Supongo que te gusta

Origin juejin.im/post/7085352543324209165
Recomendado
Clasificación