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

【node】如何开发一个生成token的接口

作为一名老前端人员,在平常的开发中经常接触到node,可谓是对node基础用法已经老烂熟于心了。一直都说node对于前端来说是需要掌握的一门后端语言,很多前端人学习后端语言首选的就是node。虽然平常接触很多遍node,但是
但是你要问我它的接口是如何写的数据库是如何链接的token是如何生成的,我可是答不出来的。
今天就浅浅的了解一下node的一些基础的用法

本文的重点

  1. 如何初始化一个Node项目结构
  2. 如何创建http请求接口,例如登录与注册
  3. 如何将接口与数据库进行链接

1 初始化

1.1 项目基本结构

新建文件夹作为目录,在项目目录中运行如下代码:

npm init -y

image.png

1.2 安装express

npm i express@4.17.1

1.3 在目录中新建app.js文件作为整个项目的入口


const express=require('express');
const app=express();app.listen(3007,()=>{console.log('server running at http://127.0.0.1:3007')
})

1.4 配置cors跨域

安装

npm i cors@2.8.5

导入并配置cors中间件

// 导入cors中间件
const cors=require('cors')
//将cors注册为全局中间件
app.use(cors)

配置解析表单的中间件

app.use(cors.urlencoded({extened:false}))

1.5 路由初始化

在项目根目录新建router文件夹,用来存放所有的 路由模块

路由模块中,只存放客户端的请求与处理函数之间的映射关系

在项目根目录中,新建 router_handler 文件夹,用来存放所有的 路由处理函数模块

路由处理函数模块中,专门负责存放每个路由对应的处理函数

./router/user.js文件中,存放请求与函数的映射关系

const express = require('express')const router = express.Router()// 应用路由处理函数
const user = require('../router_handler/user')
// 使用处理函数
router.post('/getUser',user.getUser)module.exports = router

./router_handler/user.js文件中,存放路由的处理函数

exports.getUser = (req,res)=>{res.send('Api is OK')
}

app.js文件中,引入并注册 路由模块

const express = require('express')
const app = express();// 引入路由
const userRouter = require('./router/user')
// 使用路由
app.use(userRouter)

补充:
NODE项目启动方式有很多,常用的就是 node xxx.js 来启动项目
但是在这里,推荐另一种启动方式:nodemon xxxx.js

nodemon它能自动监视文件变化并重启应用,显著提升开发效率‌。
安装

npm i nodemon

使用

nodemon app.js

2 登录与注册

2.1 安装并配置mysql 模块

 在api接口项目中,需要安装并配置mysql 这个第三方模块,来链接和操作 mysql数据库
  1. 安装mysql模块

npm i mysql@2.18.1

  1. 在项目跟目录中新建/db/index.js文件 在此自定
http://www.lryc.cn/news/610320.html

相关文章:

  • DolphinScheduler 集成DataX
  • 【REACT18.x】封装react-rouer实现多级路由嵌套,封装登录态权限拦截
  • 《Python 实用项目与工具制作指南》· 2.1 输入输出
  • 基于Matlab实现LDA算法
  • 【机器学习】(算法优化一)集成学习之:装袋算法(Bagging):装袋决策树、随机森林、极端随机树
  • MiDSS复现
  • 测试-概念篇(3)
  • 基于SpringBoot的OA办公系统的设计与实现
  • 【Mac】OrbStack:桌面端虚拟机配置与使用
  • 防火墙认证用户部署
  • DPDK中的TCP头部处理
  • 在安卓中使用 FFmpegKit 剪切视频并添加文字水印
  • uiautomator2 编写测试流程-登陆后的酷狗01
  • Django集成图片验证码功能:基于django-simple-captcha实现
  • MySQL Router
  • Elasticsearch Ingest Pipeline 实现示例
  • C 语言枚举、typedef 与预处理详解
  • C语言的数组与字符串
  • AI产品经理面试宝典第61天:AI产品体验、数据安全与架构实战解析
  • 倒排索引:Elasticsearch 搜索背后的底层原理
  • 无公网环境下在centos7.9上使用kk工具部署k8s平台(amd64架构)
  • 数字信号处理_编程实例1
  • 【前端】JavaScript基础知识及基本应用
  • C++ STL list容器详解:从基础使用到高级特性
  • AI绘图-Stable Diffusion-WebUI的基本用法
  • SwiftUI ios开发中的 MVVM 架构深度解析与最佳实践
  • 深度学习零基础入门(4)-卷积神经网络架构
  • (JAVA)自建应用调用企业微信API接口,设置企业可信IP
  • 流量见顶时代,知识付费 IP 的破局逻辑
  • 汇川PLC通过ModbusTCP转Profinet网关连接西门子PLC配置案例