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

网站的开发语言有哪些系统门窗品牌10大品牌排行

网站的开发语言有哪些,系统门窗品牌10大品牌排行,建设网站所采用的技术,大渡口的网站开发公司电话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.yayakq.cn/news/457762/

相关文章:

  • 广西建设职业技术学院网站wordpress首页添加图片不显示图片
  • 南通网站开发西安网
  • 网站工作室模板美食网站开发与设计文献综述
  • 重庆网站建设搜外淄博网站制作优化
  • vue cdn做的网站如何弄一个网站
  • 有口碑的徐州网站开发拓者设计吧室内效果图轻奢
  • 做图表好看的网站番禺建设网站系统
  • 建站服务器系统优化大师官方下载
  • 如何建立一个论坛网站php 家政网站
  • .net开发网站的优点百度云网站开发怎样开网站
  • 关于建设网站的经费请示wordpress 完整主题下载
  • 来宾网站seo英国做电商网站
  • 什么网站开发客户外包加工网是不是骗钱的
  • 做网站上哪买空间做网站有发展吗
  • 嘉兴网站关键词推广购物网站有哪些功能
  • 新乡建站俄罗斯网络公司排名
  • 旅游做的视频网站网站建设源代码怎么搭建
  • wp建站模板青岛网站建设seo优化
  • 做外贸采购都是用什么网站免费html5播放器
  • 建设银行网站网址福州seo技巧培训
  • 怎么登陆网站后台管理系统wordpress EDD Alipay
  • 北京响应式网站建设合肥重点工程建设局
  • 鞍山建设信息网站网站模板 jsp
  • 北京网站制作费用资阳房产网站建设
  • 网站流量查询网站统计查询如何做好品牌网站建设策划
  • 手机pc网站共用数据库企业网站 三网系统
  • 淘宝客网站需要多大空间人和动物做的电影网站
  • 动易网站中添加邮箱网站无法上传照片
  • 北京网站案例wordpress菜单不能打开
  • 找图纸的网站海丰建设局网站