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

网站的技术支持网站优化方案

网站的技术支持,网站优化方案,做网站先建立模型,营销型网站建设搭建方法1.划分文件夹 在src目录下创建controllers middleware models routes controllers 放具体的方法 signup login middleware 里面是中间件 请求的验证 models 放对象实体 routes 处理访问路径像/signup /login 等等 2. 接口开发 系统的主要 有用户认证 和 消息 2种类型…

1.划分文件夹

在src目录下创建controllers middleware models routes

controllers 放具体的方法 signup login

middleware 里面是中间件 请求的验证

models 放对象实体 

routes 处理访问路径像/signup  /login 等等

2. 接口开发 

系统的主要 有用户认证  和 消息 2种类型服务 

在index下面添加如下代码

import authRoutes from './routes/auth.route.js'
import bodyParser from 'body-parser'
import cookieParser from 'cookie-parser'// 解决req.body undefined问题
app.use(cookieParser())
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
// 实现signup 注册接口 认证
app.use('/api/auth', authRoutes)

/api/auth 是路由前缀  authRoutes是 处理请求的路由

在刚刚建好的routes文件夹下 创建auth.route.js 内容如下

import express from 'express';import {signUp, login} from "../controllers/auth.controller.js"const router = express.Router();router.post('/signup', signUp)
router.post('/login', login)export default router;

在models下创建user.model.js 创建user对象schema 作用是和数据库关联 (用法详见mongodb教程)


import mongoose from "mongoose";
const userSchema = new mongoose.Schema({email: {type: String,required: true,unique: true},password: {type: String,required: true,minlenght: 6},userName: {type: String,required: true},profilePic: {type: String,default: ''}
}, {timestamps: true});const User = mongoose.model('User', userSchema);export default User;

在lib文件夹下创建 util.js

import jwt from 'jsonwebtoken'export const generateToken = (userId,res) => {// 7天有效期const token = jwt.sign({userId},process.env.JWT_SECRET,{expiresIn:'7d'})res.cookie('jwt',token,{maxAge: 1000 * 60 * 60 * 24 * 7,httpOnly: true,sameSite: "strict",secure: process.env.NODE_ENV !== 'development'})return token
}

 在 /server/.env下 加 JWT_SECRET=mysecret 配置

在controllers文件夹下创建auth.controller.js 写我们的接口逻辑 

import { generateToken } from "../lib/util.js";
import User from "../models/user.model.js";
import bcrypt from "bcryptjs";// 实现signup接口
export const signUp = async (req, res) => {const { userName,password, email } = req.body// TODO: implement signup// 判断字段是否全部输入try {if (!userName || !password || !email) {return res.status(400).json({ message: '缺失字段' })}// 判断密码长度if (password.length < 6) {return res.status(400).json({ message: '密码长度不能小于6位' })}// 判断用户名是否已存在const user = await User.findOne({ email })if(user) {return res.status(400).json({ message: '邮箱已存在' })}// 密码加密const salt = await bcrypt.genSalt(10)const hashPassword = await bcrypt.hash(password,salt)// 创建用户const newUser = new User({userName,email,password: hashPassword})// 保存用户if(newUser) {generateToken(newUser._id,res)await newUser.save()res.status(201).json({_id: newUser._id,userName: newUser.userName,email: newUser.email,profilePic: newUser.profilePic,})}} catch (err) {return res.status(500).json({ message: '内部服务器错误' })}
}// 登录
export const login = async (req, res) => {const {password, email} = req.bodytry {const user = await User.findOne({ email })if (!user) {return res.status(400).json({ message: '认证失败' })}// 比较密码const isMatch = await bcrypt.compare(password, user.password)if (!isMatch) {return res.status(400).json({ message: '认证失败' })}generateToken(user._id,res)res.status(200).json({_id: user._id,userName: user.userName,email: user.email,profilePic: user.profilePic})} catch (err) {return res.status(500).json({ message: '内部服务器错误' })}
}// 退出
export const logout = async (req, res) => {try {res.cookie("jwt","", {maxAge:0})res.status(200).json({ message: '退出成功' })} catch (err) {return res.status(500).json({ message: '内部服务器错误' })}
}

3. postman测试接口

1.signup 注册接口

   密码输入1 小于6位 

注册成功返回用户信息 

查看数据库 有我们刚才注册的信息  并且密码也已加密

2.login  登录接口 

  返回用户信息  登录成功

3. logout 登出

        提示退出成功

以上就是本篇内容 下篇我们实现前端 注册注册页面 并和后端接口联调。如有问题评论私信都可以联系我 一起交流

http://www.hengruixuexiao.com/news/20719.html

相关文章:

  • 做同城网站赚钱百度怎么推广自己的视频
  • 域名注册好了怎么了做网站aso推广优化
  • 广州微信网站建设公司青岛百度代理公司
  • ui设计做网站青岛seo网站关键词优化
  • 帮人做网站被徐州派出所抓站长工具爱站
  • 没有网站怎么快速做cps合肥做网络推广的公司
  • 武汉网页设计制作培训多少钱百家号seo怎么做
  • 婚纱摄影网站毕业设计php2345网址导航官网官方电脑版
  • 开发公司 张庆seo站长教程
  • linux系统上的wordpressseo内部优化方案
  • 日照网站建设哪一家好重庆人力资源和社会保障网
  • 顺企网下载安装昆明网络推广优化
  • 网络公司网站建设彩铃样本运营和营销的区别和联系
  • wordpress 旅行主题武汉网站设计十年乐云seo
  • 苏州免费网站制作sem 优化软件
  • 家里做服务器开网站百度网址大全网址导航
  • 新疆电子商务平台网站开发企业网站制作多少钱
  • 网站增加关键词腾讯企点官网
  • 网站开发课程有哪些郑州网
  • 建设银行网站可以查保单吗数据分析师培训机构
  • 金融直播间网站建设关联词有哪些小学
  • 电脑个人网站怎么做手机免费建站app
  • 网站建设直播谷歌官方网站登录入口
  • 台州宇洋台州网站建设产品推广哪个平台好
  • wordpress gravatar 去掉郑州做网络优化的公司
  • 网站开发人员周报绍兴seo
  • 集团网站建设思路产品经理培训哪个机构好
  • 鲜花网站建设企划书互联网推广引流是做什么的
  • 在国外做盗版电影网站吗营销策划方案案例范文
  • 苏州市建设工程建设中心网站广告设计自学教程