vue3.0评论区功能的实现

vue3.0结合后端express框架以及mongodb数据库实现简单的评论区功能

  • 最近在做一个个人网站,希望通过这个项目来提高自己的水平

  • 前端页面可能是能力有限也做不出什么漂亮的页面

  • 这是首页

  • 评论留言部分长这样

评论区留言部分

  • 评论前首先的登录

  • 点击登录跳出登录框

  • 登录输入昵称以及邮箱

  • 昵称以及邮箱有个简单的正则验证
    // 昵称验证(2-8位任意字符)
    var Reg_nickname = /^.{2,8}$/;
    // 邮箱验证
    var Reg_email = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  • 正则验证通过登录才有效

后端登录接口

  1. 数据库的连接
  • 启动mongodb数据库
mongod
  • 连接数据库
mongo
  1. 后端连接数据库
const mongoose = require('mongoose')

const DATAURL = 'localhost'
const PORT = 27017
const NAME = 'personalweb'

module.exports = new Promise((resolve, reject) => {
    mongoose.connect(`mongodb://${DATAURL}:${PORT}/${NAME}`, {
        useNewUrlParser: true,
        useUnifiedTopology: true
    })
    mongoose.connection.on('open', (err) => {
        if (!err) {
            resolve('mongodb is connected!!');
            console.log('mongodb is connected');
        } else {
            reject(err);
        }
    });
})
  1. 创建用户登录的Schema模型
const mongoose = require('mongoose')

let Schema = mongoose.Schema

let usersSchema = new Schema({
    nickname: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    },
    comment: {
        type: Array,
        required: false
    },
    sinupTime: {
        type: Date,
        default: Date.now
    }
})

module.exports = mongoose.model('users', usersSchema)
  1. 在路由中引入连接数据库连接文件以及schema模型

var express = require('express');
var router = express.Router();

const db = require('../db/connect')
const users = require('../db/model/users')

// 用户注册账号后端简单逻辑
router.post('/sinup', async function (req, res) {
  // 解构赋值,获取前端页面传递过来的昵称以及邮箱
  let { nickname, email } = await req.body
  // 在user集合中查找邮箱是否注册过,如果注册过将查找到的数据发给前端,如果没有则将该条数据收入数据库中
  let result = await users.findOne( {email })
  if (result) {
    res.send(result)
  } else {
    users.create({
      nickname,
      email
    })
    res.send('注册成功')
  }
})

注册成功后评论提交按钮显示,可以输入评论并且提交

  1. 在这里使用了本地存储, 当刷新页面或者从新进入网页不用再次登录就可以评论

  2. 自己的评论下有删除2字,属于自己的评论自己可以删除,输入别人的评论没有删除2字

  3. 点击退出将清空本地登录数据的存储,需要再次登录才可以评论

posted @ 2020-08-08 14:46  boyyang  阅读(1539)  评论(0编辑  收藏  举报
//黑猫咪:https://unpkg.com/live2d-widget-model-hijiki@1.0.5/assets/hijiki.model.json //白猫咪:https://unpkg.com/live2d-widget-model-tororo@1.0.5/assets/tororo.model.json //萌娘:https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json //狗狗:https://unpkg.com/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json //萌妹1号:https://unpkg.com/live2d-widget-model-z16@1.0.5/assets/z16.model.json //萌妹2号:https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json //萌妹3号:https://unpkg.com/live2d-widget-model-hibiki@1.0.5/assets/hibiki.model.json //妹子4号:https://unpkg.com/live2d-widget-model-izumi@1.0.5/assets/izumi.model.json //妹子5号:https://unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json //6号:https://unpkg.com/live2d-widget-model-nico@1.0.5/assets/nico.model.json //7号:https://unpkg.com/live2d-widget-model-ni-j@1.0.5/assets/ni-j.model.json //8号:https://unpkg.com/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json //9号:https://unpkg.com/live2d-widget-model-nito@1.0.5/assets/nito.model.json //10号:https://unpkg.com/live2d-widget-model-tsumiki@1.0.5/assets/tsumiki.model.json //11号:https://unpkg.com/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json //帅哥1号:https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json //帅哥2号:https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json