公司缺人自己搞了vue又搞koa,熬夜把架子搭起来

news2024/11/26 21:22:07

        如果有一天,人手紧缺,自己搞了前端还要搞服务端,今天我们把这个项目架子搭起来,让前端同学也可以轻松全栈开火。

        技多不压身,活儿多了可压身啊

 

目录

一、上午写VUE 

1、 新建一个我们的伟大项目文件夹

2、用vscode打开

3、先检查一下npm源

 4、安装心爱的vue cli 脚手架       

5、创建一个vue项目吧

6、启动vue项目

二、下午写KOA

1、用vscode再打开一个命令窗口

 2、安装koa脚手架

3、安装服务端项目

三、 晚上熬夜自己和自己联调

1、先看一下启动

2、vue发送一个请求 

3、koa服务端添加接口

4、前端代理设置

5、服务端跨域设置

6、把两端都重启一下,准备吃油条


一、上午写VUE 

1、 新建一个我们的伟大项目文件夹

        这个项目是准备做出来早餐卖油条的,所以新建一个youtiao-pc的文件夹吧

        

2、用vscode打开

        打开我心爱的vscode,用vscode打开这个youtiao-pc

        

3、先检查一下npm源

        推荐淘宝源,比较快

 4、安装心爱的vue cli 脚手架       

         执行 npm install -g @vue/cli

5、创建一个vue项目吧

        执行 vue create youtiao-qianduan  这个vue项目是用来自己上午写前端vue组件的,创建完了看一眼自己心爱的vscode,是不是感觉特别熟悉。

6、启动vue项目

        执行cd youtiao-qianduan

        再执行npm run serve 

        一切都跟vue项目一样,启动起来以后,公司开发就剩自己了,以后上午写vue

二、下午写KOA

1、用vscode再打开一个命令窗口

        再打开一个命令窗口,文件路径随机又切换到了youtiao-pc

 

 2、安装koa脚手架

         执行  npm install koa-generator -g

3、安装服务端项目

        执行 koa youtiao-houduan

        成功后,提示需要安装依赖 ,再次执行 cd youtiao-houduan

        安装依赖  npm install

        成功后,就可以启动了

        执行npm run dev

        到这里,2个基本的架子就安装好了。 以后下午就可以安心的写koa的服务单接口了

        

         

三、 晚上熬夜自己和自己联调

1、先看一下启动

        vue通过localhost:8080查看页面,注意本文中端口是8080,

        

        koa通过 localhost:3000启动页面,注意这里的端口是3000

2、vue发送一个请求 

本文用一下axios吧,安装axios, 执行npm install axios

然后打开vue项目,也就是我们的youtiao-qianduan项目,打开HelloWorld.vue文件,引入axios.。并发送一个接口请求,请求一下明天早上可以卖多少油条吧

<script>
import axios from "axios" 
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  created(){
    this.getData();
  },
  methods: {
    getData() {
      axios.get('/youtiao/list').then((res) => {
        console.log(res.data)
      })
    }
  }
}
</script>

通过这里就知道了, 服务端要有一个对应的 /youtiao/list 的接口

3、koa服务端添加接口

        app.js添加一条油条早餐的路由引入,之前脚手架搭建的文件中有对应的内容,改一改就可以

var youtiao = require('./routes/youtiao');

app.use(youtiao.routes(), youtiao.allowedMethods());

        对应routes文件夹下添加youtiao.js

var router = require('koa-router')();

// 使外部路由接口可以链式调佣
router.prefix('/youtiao'); 

router.get('/list', function *(next) {
  this.body = {
    code: 200,
    data: [
      {name: "油条", count: "200根"},
      {name: "豆浆", count: "200碗"},
      {name: "豆腐脑", count: "1000根"},
    ]
  };
});

module.exports = router;

         这样,给前端提供的接口就是 /youtiao/list 了

4、前端代理设置

        我们目前启动了2个项目,一个端口是8080,一个端口是3000,所以处于跨域状态,平时都是服务端帮我们解决跨域问题,今天我们自己来搞一搞

        再次打开前端youtiao-qianduan项目的vue.config.js文件,添加接口调用代理配置

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  publicPath: './',
  lintOnSave: false,
  devServer: {
    host: '0.0.0.0',
    port: 8080,
    // 注意,本文服务端端口号是3000
    proxy: 'http://localhost:3000'  
  }
})

5、服务端跨域设置

        平时都是服务端同学帮我们设置,今天我们自己来设置一下,体会一下这种满足感吧

        打开youtiao-houduan 项目下的app.js

        添加以下代码:

// 引入允许跨域包
const cors = require('koa2-cors'); 

// 服务端设置允许跨域
app.use(cors({
  // 允许的域
  origin: function(ctx) {
    return ctx.header.origin
  }, 
  // 这些HTTP请求类型熟不熟
  allowMethods: [ 'GET', 'POST', 'PUT', 'DELETE', 'OPTIONS' ], 
  // 跨域合法性设置
  credentials: true, 
}));

6、把两端都重启一下,准备吃油条

        启动vue项目,刚刚是在created这个生命周期发送的请求,所以刷新一下前端工程就可以

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/4175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序中断方式

中断的基本概念 程序中断是指在计算机执行现行程序的过程中&#xff0c;出现某些急需处理的异常情况或特殊请求&#xff0c;CPU暂时中止现行程序&#xff0c;而转去对这些异常情况或特殊请求进行处理&#xff0c;在处理完毕后CPU又自动返回到现行程序的断点处&#xff0c;继续…

c语言之“数组”初级篇

前言 牛牛又和大家见面了&#xff0c;本篇牛牛要讲的内容是c语言中有关数组的内容。 欢迎大家一起学习&#xff0c;共同进步。 目录前言数组一、一维数组1.1 一维数组的创建1.2 一维数组的初始化1.3 一维数组的应用1.4 一维数组的存储二、二维数组2.1 二维数组创建2.2 二维数…

MySQL的select语句

SQL概述 SQL背景知识 1946 年&#xff0c;世界上第一台电脑诞生&#xff0c;如今&#xff0c;借由这台电脑发展起来的互联网已经自成江湖。在这几十年里&#xff0c;无数的技术、产业在这片江湖里沉浮&#xff0c;有的方兴未艾&#xff0c;有的已经几幕兴衰。但在这片浩荡的波…

基于android的车辆违章停放执法移动APP(ssm+uinapp+Mysql)-计算机毕业设计

车辆违章停放执法移动APP的功能已基本实现&#xff0c;主要实现首页&#xff0c;个人中心&#xff0c;市民管理&#xff0c;警察管理&#xff0c;罚单信息管理&#xff0c;缴费通知管理&#xff0c;系统管理等功能的操作系统。 论文主要从系统的分析与设计、数据库设计和系统的…

【机器学习】回归的原理学习与葡萄酒数据集的最小二乘法线性回归实例

文章目录一&#xff0c;回归1.1回归分析的基本概念1.2线性回归1.3最小二乘法1.4一元(简单)线性回归模型1.4.1随机误差项(线性回归模型)的假定条件1.4.2参数的普通最小二乘估计(0LS)1.5葡萄酒数据集的最小二乘法线性回归实例一&#xff0c;回归 1.1回归分析的基本概念 回归分析…

前端一面经典vue面试题总结

一般在哪个生命周期请求异步数据 我们可以在钩子函数 created、beforeMount、mounted 中进行调用&#xff0c;因为在这三个钩子函数中&#xff0c;data 已经创建&#xff0c;可以将服务端端返回的数据进行赋值。 ​ 推荐在 created 钩子函数中调用异步请求&#xff0c;因为在…

受激拉曼散射计量【Stimulated-Raman-Scattering Metrology】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑…

单元测试的时候读不到resources.test中配置

背景 接手了几个老工程&#xff0c;跑单元测试的时候&#xff0c;发现数据库的配置总是走了dev环境&#xff0c; 原因是工程中分环境进行了db的配置 历史经验 指定本地环境 ActiveProfiles(“test”) 没有生效 解决 在pom文件中 新加如下配置 <build><!--单元测…

Java—类加载机制

类加载机制 我们多次提到了类加载器ClassLoader&#xff0c;本章就来详细讨论Java中的类加载机制与ClassLoader。 类加载器ClassLoader就是加载其他类的类&#xff0c;它负责将字节码文件加载到内存&#xff0c;创建Class对象。与之前介绍的反射、注解和动态代理一样&#xf…

奶制品数据可视化,去年全国奶制品产量高达3778万吨,同比增长7.1%

奶制品是生活中很常见的一种补充人体所需维生素和矿物质元素的重要食品&#xff0c;在生活中奶制品也是很常见的&#xff0c;食用最多的是牛奶。牛奶中含有非常丰富的钙质&#xff0c;睡前适当给孩子食用&#xff0c;可以补充孩子所需的钙质从而达到长高的效果。 很多小伙伴经常…

C++ 类和对象以及内存管理 练习错题总结

作者&#xff1a;小萌新 专栏&#xff1a;C初阶作业 简介&#xff1a;大二学生 希望能和大家一起进步 本篇博客介绍&#xff1a;对于我们上一周学的知识做一个总结 查缺补漏 C 类和对象以及内存管理练习类和对象 (上)拷贝构造函数类和对象&#xff08;中&#xff09;重载函数运…

MySQL 主从复制与读写分离

一 概念 什么是读写分离 读写分离&#xff0c;基本的原理是让主数据库处理事务性增、改、删操作( INSERT、UPDATE、DELETE) &#xff0c;而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 为什么要读写分离 因为数据库的“写…

刷题笔记之九(查找输入整数二进制中1的个数+完全数计算+杨辉三角的变形+计算某字符出现次数)

目录 1. 聚合查询是进行行与行的运算合并&#xff0c;是不能和别的列放在一块查询 2. PHP数据库查询语句 3. 有group by时先执行where&#xff0c;后执行having 4. join常用两张表内连接和外连接&#xff0c;用一张表可以自连接 5. 删除数据用delete&#xff0c;删除表时…

python基于PHP+MySQL汽车展览会系统

随着我国交通事业的发展,汽车已经逐渐的成为了人们主要的代步工具之一,但是如何从众多品牌和型号的车海中选择最适合自己的那款车是很多购车人士一直以来关系的问题。为了方便车主更好的选择自己的车辆很多汽车经销商会不定期的举办一些车展来展销自己的车辆,同时也给购车用户提…

2022 “行业寒冬”,给在座的测试人一些涨薪建议

10 月 24 日&#xff0c;Python 官方发布了最新的 3.11 版本&#xff0c;新的版本速度提升2倍&#xff0c;以弥补与其他编程语言在速度上的缺陷。可以预见Python语言在未来的应用范围会越来越广。 会Python语言能细分出许多从业方向&#xff0c;其中随着互联网的发展&#xff…

Python_Numpy库的ndarray对象的属性有哪些?如何获取它们的值?

Python_Numpy库的ndarray对象的属性有哪些?如何获取它们的值? Python_Numpy库的ndarray对象的常用属性有如下这些&#xff1a; ndim—矩阵的维度&#xff1b; shape—矩阵的形状&#xff1b; size—矩阵的元素个数&#xff1b; dtype—矩阵元素的数据类型&#xff1b; T-矩阵…

【Transformers】第 1 章 :Hello Transformers

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

Stream流总结

前言 在Java中&#xff0c;涉及到对数组、Collecction等集合类中的元素进行操作的时候&#xff0c;通常会通过循环的方式进行逐个处理&#xff0c;或者使用Stream流的方式进行处理 例子 从给定句子中返回单词长度大于5的单词列表&#xff0c;按长度倒序输出&#xff0c;最多返…

算法入门 | 分治策略

目录 分治策略 1.分治法可以解决的问题特征 2.分治法解题步骤 3.分治法编程举例 递归求阶乘 求斐波那契数列 小练习&#xff1a;给出一个数n&#xff0c;打印其每一位 分治策略 1.分治法可以解决的问题特征 &#xff08;1&#xff09;问题规模缩小到一定程度就可以轻易…

什么是HTML?

关于每篇博文的浪漫主义 【4k】镰仓的灰色与青 | irkyar | sonya74【【4k】镰仓的灰色与青 | irkyar | sonya74】 https://www.bilibili.com/video/BV14G411A7eX/?share_sourcecopy_web&vd_source385ba0043075be7c24c4aeb4aaa73352 网页 1.1什么是网页 网站是指在因特网…