首页 > 编程语言 >vue3全栈项目:具有登录注册验证的在线实时聊天应用程序。

vue3全栈项目:具有登录注册验证的在线实时聊天应用程序。

时间:2023-12-19 18:57:33浏览次数:29  
标签:在线 项目 应用程序 全栈 api 实时 vue3 服务器 客户端

 

项目主要实现的功能:

  1. 登录注册的身份验证功能(利用JWT)来实现,在与后端验证的时候,会根据不同的身份显示不同的界面;而且根据不同角色赋予不同的权力,如管理员能查看信息,而普通用户只能登录到公共组件——在线实时俩天应用程序。
  2. 多人在线实时聊天功能——前后端之间根据WebSocket来进行实时通信,并且能实现用户界面——显示对面的用户正在打字(xx正在输入中...);对方离开聊天界面也会提示弹窗、以及能显示多少人进入了聊天室。

项目主要用的技术栈:

  1. 登录注册验证功能:Vue3+Nodejs+Express+Mysql+router+vuex+Bootstrap+axios+webpack+JWT
  2. 在线实时里聊天功能:Vue3+Nodejs+Express+Mysql+Bootstrapwebpack+Websocket

项目主要的演示图以及在线视频:

登录验证界面

登录验证界面

服务器后台界面

数据库后台情况

在线实时聊天应用程序

运行项目演示视频:哔哩哔哩

完成项目时遇到的主要问题:

  1. 遇到的第一个问题就是:如何理清客户端与后端服务器的整个交互过程?说实话在做这个项目之前,我对后端仅仅只是了解过,但并未深入,然后服务器也只是会写一点。通常只知道客户端的axios与http请求这些。那一般我做开始敲代码之前都是会先把思路理清,整个框架画出来——如都有哪些功能,顺序分别是?基本用到的技术?如何去找资料来学习?那客户端与服务端我觉得是这样理解的:

客户端与node服务器的交互

  1. 第二个问题就是:如何快速学习一下服务器和数据库的相关知识,基本作用?如何编写?它们之间如何交互?下面是它们三者之间的一个交互过程:

客户端、服务器、数据库之间的关系

  1. 第三个问题就是:不是很适应vue3的组合式api开发,总感觉怪怪的,虽然组合式api代码很简洁又省事。我觉得未来的时间里我应该要多写点小项目来练习组合式api开发模式,不然老是写options api开发,代码冗长不说,每次还得切换组件真的大大降低效率。

完成项目的收获:

  1. 首先肯定是vue3js的技术得到很多的锻炼,因为在该项目中我使用了不同的vue3 api进行开发,登录注册验证用的是options api开发模式,而在线实时聊天是组合式api开发模式,这两个api的对比下来,肯定后者效率高多了。
  2. 其次是让我熟悉了全栈项目的开发流程,以及让自己迈出舒适区,学习和实践了后端的一些技术:nodejs express mysql websocket sequelize(为数据库服务的,类似自动初始化创建数据库表格,比手动好很多哈哈哈!)
  3. 最后,我觉得这一点非常重要!调试排查错误!不管是postman api测试,还是客户端开发者工具控制台、服务器日志,我在项目完成基本雏形时算不上很痛苦,但是当我运行整个项目时,不断报错才是成长,因为我会根据报错原因一步步的进行排查和解决问题。比如,sequelize对服务器中生产环境和开发环境的要求是不一样的,但凡你写错了一点点,服务器日志狂报错,客户端却只报错出network error ,控制台也就是常见的refused,但是去逐个排查后发现根本不是客户端的事,而是我把一行代码写成了适应生产环境的格式,然后服务器在我点击send的时候就开始崩溃了... 这只是其中一个例子,自行体会。
  4. 最后的最后,我觉得这行真是永远学不完新东西,人外有人,天外有天。当自己完成项目喜悦感冷静下来后,就得要深思,我拿什么跟人家去竞争呢?我觉得前端最重要的不是框架,而是原生js,框架用的再好,还不如多打好js基础,只有很熟练了,不管出什么新框架,或者大更新,其本质从未变过。

未来的日子会更重视js、typescript、python这些,希望自己能在这条路上走得远一些。

最后的上线部署:

  • 因数据库涉及个人信息太多,加上该项目涉及两个数据库和服务器,部署起来需要一些时间,暂时先不部署上线,过几天忙完就弄好;感兴趣的小伙伴可以看看我的在线运行项目演示视频!
联系我:
  • 喜欢捣鼓项目、喜欢一起学习探讨计算机语言或者喜欢讨论ai技术发展的小伙伴们,欢迎加我联系方式:

项目github地址

  标签: Vue.js 话题: 新人报道  
作者:katyjohn
链接:https://juejin.cn/post/7312723512724013110
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  

标签:在线,项目,应用程序,全栈,api,实时,vue3,服务器,客户端
From: https://www.cnblogs.com/katyjohn/p/17914432.html

相关文章

  • vue3如何实现断点续传
    首先创建一个vue3项目普通上传//template<inputtype="file"ref="uploadRef"@change="upload"/>//jssetupfunctionupload(event){letfiles=event.target.filesletformData=newFormData()formData.append("file",file......
  • 脚手架搭建vue3项目
    vue官网:https://cn.vuejs.org/ 下面将搭建一个最基本的vue3项目,包含vue3、ts、pinia、element-plus、scss、api-proxy等配置。步骤如下:1.按脚手架初始化项目进入vue官网的快速上手,按照官网所述,执行:npmcreatevue@latest,然后,按照提示选择 typescript/vue-router/pin......
  • vue3中router配置中的children怎么用
    在Vue3中,当你使用VueRouter创建路由配置时,children属性允许你为某个路由定义嵌套路由。这意味着你可以在父路由下设置子路由,从而构建出具有层级结构的URL路径。这里是一个基本的例子,展示了如何在VueRouter中使用children属性:import{createRouter,createWebHistory}from......
  • vue3.0+vite问题汇总
    1、找不到模块“vite”。你的意思是要将"moduleResolution"选项设置为"node",还是要将别名添加到"paths"选项中 解决方法(tsconfig.json添加如下代码,添加之后重启;重启之后如果仍然有问题,可能是编辑器版本比较旧,升级编辑器版本,我从vscodev1.74.x更新到了v1.85.1解决了):"c......
  • Kubernetes管理应用程序、服务常用命令、集群监视
    1、如何使用Kubernetes管理应用程序1.1查看集群信息:kubectlcluster-info:显示集群信息。kubectlconfigview:显示当前kubectl配置信息。1.2查看资源状态:kubectlgetpods:查看所有Pod的状态。kubectlgetdeployments:查看所有部署的状态。kubectlgetservices......
  • 应用程序分段之bss段、data段
    应用程序分段之.bss段、.data段BSS段:应用程序存储未初始化或初始化为0的全局变量和静态变量。DATA段:应用程序存储初始化为非零值的全局变量和静态变量。#include<stdio.h>staticintsglobal_x=0;intglobal_xx;staticintsglobal_y=1;intglobal_yy=-1;......
  • vue3 相关知识汇总
    1组合式api和选项式api  1.1概念  选项式api:用包含多个选项的对象来描述组件的逻辑。  组合式api:组合式api使用导入的API函数来描述组件逻辑。组合式API通常会与<scriptsetup>搭配使用。  1.2应用场景    选项式api:不需要使用构建工具或者低复......
  • Windows 应用程序开发
    实验三Windows应用程序开发一、实验目的掌握窗口控件的使用方法;掌握Windows的编程基础。二、实验要求根据要求,编写C#程序,并将程序代码和运行结果写入实验报告。三、实验内容1.编写一个计算器,练习在窗体上添加控件、调整控件的布局,设置或修改控件属性,编写事件处理程序......
  • vue3中的样式为什么加上scoped不生效
    <style>标签添加scoped属性时,Vue会自动为该组件内的所有元素添加一个独特的数据属性,例如data-v-f3f3eg9。同时,它也会修改你的CSS选择器,使得它们只匹配带有这个独特数据属性的元素。这样做的目的是为了确保样式只应用于当前组件内的元素,避免影响到其他组件。然而,当你尝试覆盖子组......
  • 【.NET】控制台应用程序的各种交互玩法
    老周是一个不喜欢做界面的码农,所以很多时候能用控制台交互就用控制台交互,既方便又占资源少。有大伙伴可能会说,控制台全靠打字,不好交互。那不一定的,像一些选项类的交互,可以用键盘按键(如方向键),可比用鼠标快得多。当然了,要是要触控的话,是不太好用,只能做UI了。关于控制台交互,大伙伴们......