新项目笔记 Vue3 + Vite


起因

跟(小萍萍)摸鱼,想着做个小应用


需求分析

version 0.2

  • 登录注册
  • 添加好友信息,相识日期

version 0.1

  • 主页展示相识的天数和秒数

框架

  • 前端 Vue3 + Vite
  • 后端:NodeKoa 框架
  • 数据库:mySQL

git 仓库地址


遇到的问题

CreateRouter 报错

// 报错
does not provide an export named 'createRouter'

如果是用 npm i vue-router 安装的话会默认安装的是 vue-router@3.x ,然而我们要安装4.x4.x 下才有 createRouter

重新安装 npm i --save vue-router@next,之后重启项目就可以了

不热更新

原因:组件名大写了,第一个dev 的时候能看到改变,但是不会热更新了

根本原因:粗心大意了。

跨域

问题描述:后端配置完接口以后,出现跨域的问题
在这里插入图片描述

解决:需要在前端的 vite 的配置项目中添加 proxy官方手册:proxy

// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server: {
    proxy: {
      '/api': {
        target: 'http://127.0.0.1:9000',	// 添加后端的地址
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '/api')
      }
    }
  }
})

Cookie 前端获取不到

后端在设置的Cookie时候要设置

httpOnly:false,     // 这里之前没有加

在这里插入图片描述

Cookie 不能存汉字

Cookie 是不能存成汉字的,需要对值进行加解密的处理,base64 ,下图是我尝试存成汉字后的报错
在这里插入图片描述
解决办法:base64 加密

const b64Encode = (str) => {
    // 加密
    // 把中文先转化 ASCII 字符序列 ,然后进行base64编码
    return btoa(encodeURIComponent(str))
}
const b64Decode = (str) => {
    // 解密
    // 拿到base64 字符串后先进行转化成 asc2,然后转化成中文
    return decodeURIComponent(atob(str))
}

参考文章:https://www.cnblogs.com/lxg0/p/7543991.html


项目操作

初始化仓库

git 上新建一个空白仓库,然后本地 clone 下来

根据 vite 官网上的描述,新建一个前端的项目

在这里插入图片描述

引入路由

/router/index.js 新建一个路由页面的写法

import { createRouter, createWebHistory } from 'vue-router'
import HelloWorld from '../components/HelloWorld.vue'
const routes = [
    {
        path: '/',
        name: 'HelloWorld',
        // component: () => import('../components/HelloWorld.vue'),
        component: HelloWorld
    }
]
const router = createRouter({
    history: createWebHistory(),
    routes
})

export default router

注意,这里不能用 module.export 导出,这样会报错的

导出的测试如下,这个是正常的
在这里插入图片描述
这个是报错的
在这里插入图片描述

然后再 main.js 中引入。

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

const app = createApp(App);
app.use(router)
app.mount('#app')

在这里插入图片描述

引入Element-plus

npm i element-puls 后,在main.js 中引入

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus';
import 'element-plus/lib/theme-chalk/index.css';

const app = createApp(App);
app.use(router)
app.use(ElementPlus)

app.mount('#app')

nginx 配置服务到 80 端口

我是看了这个教程啊:1、nginx 的教程
首先把 nginx 下载下来,然后解压缩包,然后找到这个路径 nginx-1.20.1\conf, 修改路径下 nginx.conf 这个文件。至于修改的文件都是什么功能,视频教程里有讲解。主要是说明访问路径,接口,以及proxy 代理的地址。

在这里插入图片描述
配置好之后,启动 / 重新加载 nginx 启动服务
在这里插入图片描述
然后到访问到 localhost ,成功访问

内网穿透

需求:我需要别人来访分我起的服务

遇到了这个问题:本地启动服务,连接在同一个局域网上的设备是可以正常访问的,但是外网是无法访问的,主要是因为自己的服务只是在局域网里有效的。我们需要内网穿透

1、nat、内网穿透,端口映射概念
2、内网穿透教程

步骤

  • 下载一个软件 natapp ,用来内网穿透的,然后注册个用户,使用免费的即可
  • 然后购买一个免费的隧道,写好本地启动的服务端口,在这里插入图片描述
  • natapp.exe 这个文件的同级下新建 config.ini文件 ,内容如官网描述在这里插入图片描述
  • 然后填写你的 authtoken 到当前文件夹下在这里插入图片描述
  • 最后运行netapp.exe内网穿透软件在这里插入图片描述

数据库尝试

一定要先建立好数据库和表结构
如果没有建立数据库的话,node会报错如下信息:在这里插入图片描述

如果没有表的话会报错如下信息
在这里插入图片描述

如果字段都有了,就可以正常操作了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值