¡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
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
复制代码
- Probar/crear solicitud con Postman
más tipo de contenido
Pasar datos utilizando el json más utilizado
Entorno construido ok
4. Presentación del SDK del servicio en la nube de Tencent
4.1 Buscar cloudBase en Tencent Cloud Platform
4.2 Cree un servicio de backend (también puede elegir una plantilla en blanco para crear)
4.3 Pago por uso
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.
4.4 La primera convocatoria para solicitar la generación de secretid y secretkey
cloud.tencent.com/document/pr…
4.5 Nueva identificación y clave de registro .env
Jaja, desactivaré esto más tarde~
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
- 引入腾讯云开发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}`})
})
复制代码
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