当前位置: 首页 > news >正文

我自己nodejs练手时常用的一些库基础用法

我自己在使用nodejs以及前端实战练习时常用的一些库的基本使用

1.bcrypt

//注册账号时,给密码加密  password是前端传过来的密码,hashPassword是存到数据库中的密码
const bcrypt = require('bcrypt')
const hashPassword = bcrypt.hash(password,10)
//登录时,通过对比来确认
bcrypt.compare(password,hashPassword)

2.express

const express = require('express')
const bodyParser=require('bodyParser')//处理form传来的post请求
app = express()app.use(express.json())
app.use(express.urlencoded({ extended: true }))//get请求参数处理
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))app.all('*', function (req, res, next) {//跨域访问配置,简单版本res.header('Access-Control-Allow-Origin', '*');res.header('Access-Control-Allow-Headers', 'Content-Type');res.header('Access-Control-Allow-Methods', '*');next();
});
app.get("/user",(request,response)=>{...
})
app.listen(1855,(err)=>{...
})//补充:Router 后端的路由
const {Router} = require('express')
const router = Router()
router.get('/signup',(request,response)=>{})
//需要在app中use
app.use('/user',router)

3.pg postgresql官方nodejs库

const pg = require('pg')
const client = new pg.client(dbConfig)
client.connect((err)=>{})
client.query(sqlText,values,(err,result)=>{})const {Pool} = require('pg')
//连接池,在查询的时候会自动帮我们创建连接,可以在配置中修改配置连接池管理的连接数量
const pool = new Pool(dbConfig)
pool.query(sqlText,values,(err,result)=>{})

4.config 配置文件读取,需要在require('config')的那个文件的目录下创建一个config文件夹

配置文件在./config/default.json

const config = require('config')
const dbConfig = config.get('dbConfig')

5.pm2 用于托管后端服务器

pm2 start app.js
pm2 stop app
pm2 delet app

6.jwt鉴权

//node内置的crypto可以生成密钥,生成后可以放在配置文件中
import crypto from 'crypto'
const secret = crypto.randomBytes(64).toString('hex');
/
import jwt from 'jsonwebtoken';
import config from 'config';
//获取配置文件中的密钥
const secret = config.get('currentSecret');
//生成token
jwt.sign({id: user.id,email: user.email,...}, secret, { expiresIn: '1h' });
//验证token
const token = req.headers['authorization'];
jwt.verify(token, secret, (err, decoded) => {...})

http://www.mrgr.cn/news/68845.html

相关文章:

  • PMP–一、二、三模、冲刺–分类–6.进度管理--技巧--资源平衡资源平滑
  • ER图的规范画法
  • 数字化转型必看!华为数字化最全合集(192页PDF限免下载 )
  • K8S网络插件故障处理
  • 一文了解Android本地广播
  • linux命令详解,账号相关
  • 嵌入式ARM平台Linux网络实时性能优化
  • vue3框架还需要学习什么
  • XSS漏洞--常用payload及绕过
  • 双亲委派模型的破坏
  • JavaScript中异步函数的执行时机
  • Python 中使用组合方式构建复杂正则
  • Java 中如何巧妙应用 Function 让方法复用性更强
  • 三十五、Python基础语法(文件操作-下)
  • MIT 6.S081 Lab1: Xv6 and Unix utilities翻译
  • 关于向前欧拉法的一些总结
  • ARXML汽车可扩展标记性语言规范讲解
  • 单细胞 RNA 测序分析的当前最佳实践:教程-文献精读80
  • 【AI日记】24.11.08 Knowledge Graphs for RAG (知识图谱,Neo4j,Cypher)
  • C++builder中的人工智能(12):了解ELU(Exponential Linear Unit)——人工神经网络中的激活函数
  • 【Android】名不符实的Window类
  • AutoSar AP CM中的序列化总结
  • C++builder中的人工智能(10)神经网络中的Sigmoid函数
  • 苍穹外卖day09超出配送范围前端不提示问题
  • 367.有效地完全平方数
  • HCIP MPLS基础