关于我用laf花了一天,为学校写了个简单的线下千人抽签练手小项目

引言

晚上九点,我接到了老师需要我开发一个能在第二天晚上之前能用上的抽签小程序,我开始认为很简单,就是简单的表单提交数据,后端一个随机数就可以轻松解决了。没想到她要求在第二天的晚上,有一千到两千人同时扫码填写数据,这同时一千次的高并发不得给我那个小豆丁服务器给烧了。。。

所以最大的问题就是如何处理这个高并发和时间问题,所以我采用了两个方法,一个是服务器直接选择laf的云服务器,他支持动态扩容,不容易爆掉,而且部署起来很轻松,很快就可以完成,然后就是我们决定直接调用金数据的API来跳过我们自己收集表单这一步,让金数据的服务器去解决一下这个高并发的问题,事实证明作为一个问卷收集头部企业,果然是没啥问题的。

这次是我第一次使用laf云开发平台来部署这样的一个项目,既然他广告词都说让我们的开发像写博客一样写代码,那我可来试试了,不过事实证明laf确实相当方便,部署这样的一个小项目简直是一发入魂。

那么作为一个刚开始学习前端一个月并且尝试开始开发小项目的小白,让我来带你们看看小白是怎么轻松在laf上开发部署一个项目的,给大家分享一下我的开发部署初体验。手把手告诉大家一个网页的部署需要在上面干什么,看完文章你就能轻松学会laf的部署啦~

抽签小网页

想直接看laf部署直接跳到最后喔~

我一共写了这样的两个页面,内容就是简单的切图,没有设计师,晚上干想出来的页面设计,只能说还有好看的空间~

这样的两个页面就没有什么难度了,就按照head body foot三部曲切成上中下三个部分或者上下两个部分,图片是现成截出来的,样式设计就没不用细说的,如果有小白有兴趣的话也可以找我要源码,然后两个页面除了一个a标签跳转和抽签按钮发送网络请求返回信息其实没有其它的操作。

  • 第一个页面提供一个跳转连接金数据进行填写:
  • 然后就是第二个页面点击抽签的效果:

就是获取数据之后,显示一个table展示一下抽奖结果。

  • 当然,请求的时候和抛出error的时候也需要有响应:

  • 加载

  • 未输入
  • 没有符合条件的学生

就这样就把我们的页面解决了~

金数据API调用

一般我们如果想要调用这类网站的API,我们可以直接搜索他们的API调用,一般就能找到他们的使用文档:

  • 搜索

就这样轻松搜到:

  • 查看文档

他会告诉我们接口的认证方式:

代码可以这样写:

我们直接用fetch方法来演示一下吧:

ts 复制代码
  const testData = await cloud.fetch({
     url: `https://jinshuju.net/api/v1/forms/${formToken}/entries?next`,
     headers: {
       Authorization: 'Basic ' + Buffer.from(`${api_key}:${api_secret}`).toString('base64')
     }
   })

在请求头里,按照他要求的格式,把keysecret进行拼接转码然后拼接在Basic 头后面,这样我们就可以正确的发送请求啦~

他支持我们这几种调用方式:

通过getpostdeletepatch进行增删改查

  • API

API可以在个人中心找到:

我们开启API访问就可以获得keysecret

不过金数据的API除了开通企业套餐外,只有七天的试用,但是APi调用都是类似的,一法通百法通,可以选其它网页的API来用啦~

laf部署

精彩的部分来啦,前面的内容其实比较简单,基本只要了解一下就可以自己写了,接下来让我带大家看看,有后端,有前端,我要怎么把这个项目部署起来:

1.新建一个laf

我们登陆之后就可以直接点击新建:

然后我们就可以选择我们服务器的配置了(后续是可以在里面更改配置的)

你会发现,原来还要收费啊,感觉没那么香了,不过别担心,如果是一个小项目选最低配置挂载,基本花不了多少钱,相比于它的方便,对小白来说简直太爽啦,而且他为每一个新用户都免费提供了十元的额度,小二!给我们来个十块的!体验一下就知道部署原来可以这么简单~

2.静态网页部署

一般来说我们的项目是包含前后端的,后端就是提供一个API接口给前端调用,我们不使用后端(当然同时配置后端也是可以的,让我们慢慢来介绍)直接挂载页面的话可以这样操作:

  • 新建一个应用后,左上角我们点击储存
  • 然后我们点击加号,新建一个bucket
  • 我们可以填一个自己想要的名字,然后确定
  • 然后直接点击上传,把我们的本地页面文件夹传上去,这里是我那个抽奖的页面已经传好了
  • 然后点击右边的三个点,点击开始托管(我这里是已经开始托管的状态),稍微等一下你就会发现,我们点击域名就可以访问我们的网页了,快发给身边的朋友看看,没错就这样就好了!我们的页面就成功部署了

这也太爽了,甚至啥都不用调,本地能跑直接挂上去原样跑!

3.后端云函数

lafnode.js的底层,所以我们的后端就和在vscode里写后端代码一样,而且不需要初始化服务器什么的,当然要带点特殊的写法,但我等下给你一展示就明白了,超级简单,laf采用的格式是TypeScript

创建一个云函数

我们回到函数这里,直接点击加号新建一个云函数

然后我们可以填写名字,可以选择接收的请求,如果需要的话还有别人写好的模板给你使用,大家都来用,搞搞生态,给我多搞点模板~

一个云函数就是一个后端接口

没错!我们直接看右上角,我们的后端接口这不就来了吗,太爽了,旁边还可以直接调试接口

云函数怎么写

  • 首先我们要引入一下云,并且把格式设置一下
  • 然后我们的主函数这样写

export async function + 函数

  • 其它的函数可以这样写

async funcion + 函数

  • 接口的返回值这样写

包括抛出异常和正常的返回值

  • 发送请求这样写

需要await一下,然后使用我们之前引入的cloud调用fetch

然后结束了,调试一下没问题,点击发布,你的接口已经能用了!做一个这样的小项目用laf简直谁用谁知道,没想到我的前后端就这样就轻松解决了,五个小时第一版就已经基本完善了,第二天改了下需求,一个上午轻松结束,最后晚上实践的时候也没有出现任何问题。

这就是我这一次紧急接的一个小项目,帮我的学校写了这样一个线下千人提交然后抽签的小项目,直接使用laf快速上线的实际体验,小白就可以通过这样的方式来开启自己的处女项目,让我们一起coding吧~

那么这篇文章就到这里结束啦~

如果你想了解更多这类文章,点赞关注作者更新更多~

相关推荐
沐土Arvin3 分钟前
深入理解 requestIdleCallback:浏览器空闲时段的性能优化利器
开发语言·前端·javascript·设计模式·html
专注VB编程开发20年4 分钟前
VB.NET关于接口实现与简化设计的分析,封装其他类
java·前端·数据库
小妖66614 分钟前
css 中 content: “\e6d0“ 怎么变成图标的?
前端·css
言之。1 小时前
Go 语言中接口类型转换为具体类型
开发语言·后端·golang
L耀早睡1 小时前
mapreduce打包运行
大数据·前端·spark·mapreduce
HouGISer1 小时前
副业小程序YUERGS,从开发到变现
前端·小程序
outstanding木槿1 小时前
react中安装依赖时的问题 【集合】
前端·javascript·react.js·node.js
diving deep2 小时前
XML简要介绍
xml·java·后端
霸王蟹2 小时前
React中useState中更新是同步的还是异步的?
前端·javascript·笔记·学习·react.js·前端框架
霸王蟹2 小时前
React Hooks 必须在组件最顶层调用的原因解析
前端·javascript·笔记·学习·react.js