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

手机版网站建设费用清单做外贸面料哪个网站可以接单

手机版网站建设费用清单,做外贸面料哪个网站可以接单,wordpress添加网页背景特效,电力建设期刊网站经常维护吗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.dtcms.com/a/448115.html

相关文章:

  • 邵阳哪里做网站罗湖网站建设的公司哪家好
  • 集约化网站建设情况企业级网站内容管理解决方案
  • 教程推广优化网站排名市场监督管理局管什么
  • 神级网页设计网站科技布沙发清洗
  • 小型公司网站建设菏泽网站建设公司排名
  • 二级域名做网站有哪些缺点网站备案的幕布
  • 比特币支付网站建设企业网站必须备案
  • 广西建设执业注册中心中心网站北京城乡建设官方网站
  • 重庆免费自助建站模板网站建设贴吧
  • 网站qq访客抓取高端品牌网站建设费用
  • 个人网站建设培训多用户 wordpress
  • 亚马逊网站链接号wordpress
  • 常州天宁区建设局网站wordpress备份content
  • 域名注册没有网站网站建设公司排名深圳
  • 别人抄袭网站设计怎么办市场调研模板
  • 中山品牌网站建设外贸怎么做公司网站
  • 珠海网站制作套餐网站建设中布局
  • 建设部网站资质公示什么网站做调查能赚钱吗
  • 那些论坛网站做的比较好专业APP客户端做网站
  • 用阿里云怎么建网站网站后台上传图片步骤
  • 蚁百杭州网站seo优化如何知道网站开发语言
  • 金华高端网站建设wordpress简洁风模板
  • 有祥云网站建设学校网站前的需求分析报告
  • 深圳建站网站电子商务前景如何
  • 合肥专业建站做卖车网站需要什么手续费
  • 网站域名备案证书wordpress修改阅读
  • 自己做的网站还要买域名么企业宣传片摄制
  • 吉林市做网站深圳 网站设计公司
  • 为什么用wp做网站腾讯云企业邮箱注册
  • 云南旅游网站建设wap网站搭建