Slog36_支配vue框架初阶项目之博客网站-注册页面-合并登陆和注册页面

news/2024/4/27 9:23:31/文章来源:https://blog.csdn.net/weixin_33811539/article/details/88754587
  • ArthurSlog
  • SLog-36
  • Year·1
  • Guangzhou·China
  • Aug 12th 2018

  • GitHub
  • 掘金主页
  • 简书主页
  • segmentfault

生活需要惊喜和新鲜 人有时候因为很执着一件事 而忘记了自己人生的意义


开发环境MacOS(High Sierra 10.13.5)

需要的信息和信息源:

  • HTTP概述
  • HTTP
  • 互联网是如何工作的
  • 万维网是如何工作的
  • 统一资源定位符(URL)
  • 什么是超链接
  • 创建超链接
  • AJAX是异步的JavaScript和XML(Asynchronous JavaScript And XML)
  • XMLHttpRequest
  • Using files from web applications

开始编码

  • 我们开始向单页应用前进,意思就是把多个网页集成到一个网页,把所有的业务都集成到这个页面上来
  • 首先,调整一下服务端的 js 文件

server/index.js

const serve = require('koa-static');
const Koa = require('koa');
const app = new Koa();
const Router = require('koa-router');
const router = new Router();// $ GET /package.json
app.use(serve('../client'));//
router.get('/signin', async (ctx) => {var mysql = require('mysql');var connection = mysql.createConnection({host: 'localhost',user: 'root',password: '88888888',database: 'my_db'});connection.connect(function (err) {if (err) {console.error('error connecting: ' + err.stack);return;}console.log('connected as id ' + connection.threadId);});var response = {"name": ctx.query.name,"password": ctx.query.password};var addSql = 'SELECT * FROM ArthurSlogAccount WHERE AccountName=?';var addSqlParams = [response.name];var datas = await new Promise((resolve, reject) => {connection.query(addSql, addSqlParams, function (err, result) {if (err) {reject(err);console.log('[SELECT ERROR] - ', err.message);return;}if (result[0].Password == response.password) {resolve(result[0]);console.log('Welcome~ SingIn Successul ^_^' + '\\' + 'Level: ' + result[0].Level + ' Houses: ' + result[0].Houses);}if (result[0].Password != response.password) {reject('SingIn Fault ^_^!');console.log('SingIn Fault ^_^!');}});});if (datas) {ctx.body = datas;}connection.end();
});//
router.get('/signup', async (ctx) => {var mysql = require('mysql');var connection = mysql.createConnection({host: 'localhost',user: 'root',password: '88888888',database: 'my_db'});connection.connect(function (err) {if (err) {console.error('error connecting: ' + err.stack);return;}console.log('connected as id ' + connection.threadId);});var response = {"name": ctx.query.name,"password": ctx.query.password,"firstname": ctx.query.firstname,"lastname": ctx.query.lastname,"birthday": ctx.query.birthday,"sex": ctx.query.sex,"age": ctx.query.age,"wechart": ctx.query.wechart,"qq": ctx.query.qq,"email": ctx.query.email,"contury": ctx.query.contury,"address": ctx.query.address,"phone": ctx.query.phone,"websize": ctx.query.websize,"github": ctx.query.github,"bio": ctx.query.bio};var addSql = 'INSERT INTO ArthurSlogAccount(AccountName, Password, Firstname, Lastname, Birthday, Sex, Age, Wechart, Qq, Email, Contury, Address, Phone, Websize, Github, Bio) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)';var addSqlParams = [response.name, response.password, response.firstname, response.lastname, response.birthday, response.sex, response.age, response.wechart, response.qq, response.email, response.contury, response.address, response.phone, response.websize, response.github, response.bio];ctx.body = await new Promise((resolve, reject) => {connection.query(addSql, addSqlParams, function (err, result) {if (err) {reject(err);console.log('[INSERT ERROR] - ', err.message);return;}resolve('Singup Successful!');});});connection.end();
});app.use(router.routes());app.listen(3000);console.log('listening on port 3000');
  • 其中的
if(datas){ctx.redirect('account.html');
}
  • 调整为
if (datas) {ctx.body = datas;
}
  • ok,服务端的代码调整完毕
  • 现在启动静态服务器
node index.js
  • 接着继续,我们把 signin.html 和 signup.html 合并在一个页面里 app.html

app.html

<!DOCTYPE html>
<html><head><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="./css/style.css"><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><title>signin_ArthurSlog</title>
</head><body><div id="signup-container"><div>This is signin's page by ArthurSlog</div><p>Singin</p><form id="form1" v-on:submit.prevent="signin"><br><div>Account: {{ name_signin }}<br><input type="text" v-model="name_signin" placeholder="username"></div><br><br><div>Password: {{ password_signin }}<br><input type="text" v-model="password_signin" placeholder="password"></div><br><input type="submit" value="登陆"></form><br><a href="./index.html">Return index's page</a><div>This is signup's page by ArthurSlog</div><p>Singup</p><form id="form2" v-on:submit.prevent="addUser"><br><div>Account: {{ name }}<br><input type="text" v-model="name" placeholder="username"></div><br><br><div>Password: {{ password }}<br><input type="text" v-model="password" placeholder="password"></div><br><br><div>Again Password: {{ repassword }}<br><input type="text" v-model="repassword" placeholder="repassword"></div><br><br><div>First Name: {{ firstname }}<br><input type="text" v-model="firstname" placeholder="firstname"></div><br><br><div>Last Name: {{ lastname }}<br><input type="text" v-model="lastname" placeholder="lastname"></div><br><br><div>Birthday: {{ birthday }}<br><input type="text" v-model="birthday" placeholder="2000/08/08"></div><br><br><div><span>Sex: {{ currentSex }}</span><br><input type="radio" id="sex" value="male" v-model="currentSex"><label for="sex">male</label><br><input type="radio" id="sex" value="female" v-model="currentSex"><label for="sex">female</label></div><br><br><div><span>Age: {{ currentAge }}</span><br><select v-model="currentAge" id="age"><option disabled value="">Select</option><option v-for="age in ages">{{ age }}</option></select></div><br><br><div>Wechart: {{ wechart }}<br><input type="text" v-model="wechart" placeholder="wechart's name"></div><br><br><div>QQ: {{ qq }}<br><input type="text" v-model="qq" placeholder="12345678"></div><br><br><div>Email: {{ email }}<br><input type="text" v-model="email" placeholder="12345678@qq.com"></div><br><br><div>Contury: {{ contury }}<br><input type="text" v-model="contury" placeholder="China"></div><br><br><div>Address: {{ address }}<br><input type="text" v-model="address" placeholder="Guangzhou"></div><br><br><div>Phone: {{ phone }}<br><input type="text" v-model="phone" placeholder="138********"></div><br><br><div>Websize: {{ websize }}<br><input type="text" v-model="websize" placeholder="xxx.com"></div><br><br><div>Github: {{ github }}<br><input type="text" v-model="github" placeholder="Github's URl"></div><br><br><div>Bio: {{ bio }}<br><input type="text" v-model="bio" placeholder="This is the world~"></div><br><br><input type="submit" value="完成注册"></form><button v-on:click="addUser">addUser</button><a href="./index.html">Return index's page</a><br><br><div>{{ commits }}</div></div><script src="./js/signup.js"></script>
</body></html>
  • 然后呢,在来调整一下前端的 js 文件

signup.js

var host = 'http://127.0.0.1:3000/';var signup_container = new Vue({el: '#signup-container',data: {name_signin: '',password_signin: '',name: '',password: '',repassword: '',firstname: '',lastname: '',birthday: '',sexs: ['male', 'female'],currentSex: 'male',ages: ['1', '2', '3', '4', '5', '6', '7', '8','9', '10', '11', '12', '13', '14', '15', '16', '17', '18'],currentAge: '18',wechart: '',qq: '',email: '',contury: '',address: '',phone: '',websize: '',github: '',bio: '',commits: null,},methods: {signin: function() {var xhr = new XMLHttpRequest()var self = thisxhr.open('GET', host + 'signin?' + 'name=' + self.name_signin + '&password=' + self.password_signin, true)xhr.onload = function () {self.commits = xhr.responseText}xhr.send()},addUser: function () {var xhr = new XMLHttpRequest()var self = thisxhr.open('GET', host + 'signup?' + 'name=' + self.name + '&password=' + self.password + '&firstname=' + self.firstname + '&lastname=' + self.lastname + '&birthday=' + self.birthday+ '&sex=' + self.currentSex + '&age=' + self.currentAge + '&wechart=' + self.wechart+ '&qq=' + self.qq + '&email=' + self.email + '&contury=' + self.contury+ '&address=' + self.address + '&phone=' + self.phone + '&websize=' + self.websize+ '&github=' + self.github + '&bio=' + self.bio, true)xhr.onload = function () {self.commits = xhr.responseText}xhr.send()}}})
  • 注意看到 html 和 js 文件里发生了变化的部分
  • 现在,打开浏览器,输入 127.0.0.1:3000/app.html
  • 输入之前注册过的账号密码,然后点击 登陆 按钮
  • 正常执行的话,你会在页面的底部发现,登陆后服务端返回的数据
  • 至此,我们将 signin.html 和 signup.html 合并在了一起。

欢迎关注我的微信公众号 ArthurSlog

ArthurSlog

如果你喜欢我的文章 欢迎点赞 留言

谢谢

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter测试网站并发量

转载自&#xff1a;https://www.cnblogs.com/qqbook/p/7705483.html 如何测试一个网站的性能&#xff08;并发数&#xff09;&#xff1f; JMeter网站并发性测试 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试&#xff0c;它最初被设计用于…

搜索引擎优化系统知名乐云seo_搜索引擎seo优化主要从哪里入手?

首先我们应该了解什么是搜索引擎优化以及网站搜索引擎seo优化的价值&#xff0c;从基础开始逐步深入&#xff0c;下面拓王朝所要讲的都是一些理论知识&#xff0c;很好理解&#xff0c;有不同见解欢迎评论。SEO优化SEO搜索引擎优化&#xff0c;是指通过采用易于搜索引擎索引和排…

水果网站关于我们的纯html的代码_Google说有效的HTML问题的6个原因

谷歌的加里伊利耶斯&#xff08;Gary Illyes&#xff09;最近发布的一条推文呼吁人们注意无效HTML的问题。Google可以使用无效的HTML。鲜为人知的是&#xff0c;无效HTML会带来负面结果。Google的支持页面鼓励发布者编写有效的HTML代码。Gary Illyes发了一条以下消息&#xff1…

怎么查看linux日志里请求量最高的url访问最多的_网站日志分析最完整实践

分析网站日志可以帮助我们了解用户地域信息&#xff0c;统计用户行为&#xff0c;发现网站缺陷。操作会面临几个问题 - 日志分析工具splunk如何使用&#xff1f; - 日志格式信息不全&#xff0c;如何配置日志打印出全面信息&#xff1f; - 有大量爬虫访问&#xff0c;并非真实流…

制作index.HTML千履千寻,网站测试与发布

个主页空间&#xff0c;该空间即网站在Internet中存放的位置&#xff0c;网上用户在浏览器中输入该位置的地址后即可访问网站。1.注册并申请主页空间网上可申请主页空间的网站比较多&#xff0c;各个网站上的申请操作也基本相同&#xff0c;下面以在“虎翼网”上申请免费主页空…

php网站部署 代码泄露,PHP如何修复“页面异常导致本地路径泄露”

以下是OMG小编为大家收集整理的文章&#xff0c;希望对大家有所帮助。自从1月份网站更换空间后&#xff0c;网站程序运行稳定&#xff0c;并及时升级后台程序&#xff0c;360检测的分数都是100分。不过最近查看360收录的时候&#xff0c;发现网站的分数是91分&#xff0c;提示&…

php网站 只显示sinsiu_网站灯笼特效,增加喜庆气氛

很早以前就看见(过年前)&#xff0c;果核剥壳网站挂起了灯笼。今日查资料偶然发现一点优化也有&#xff0c;仔细看&#xff0c;那个穗尾的位置也不对。蒲公英博客的穗尾的位置也不对&#xff0c;看来两者引用的可能是同一源码。经过上网简单查阅相关资料&#xff0c;特别是爱搜…

java 爬虫 图片_我用java爬虫爬了一个图片网站

我用java爬虫爬了一个图片网站最近想建立个网站&#xff0c;不想搞技术博客之类的网站了&#xff0c;因为像博客园还有CSDN这种足够了。平时的问题也都是这些记录一下就够了。那搞个什么网站好玩呢&#xff1f;看到一个图片网站还不错&#xff0c;里面好多图片(当然有xxx图片了…

iis怎么切换网站php版本,windows服务器iis7.5安装多个php版本切换设置

因为某个网站程序的配置是在php5.3上面运行的&#xff0c;不兼容我现在的php5.5.所以就只能再安装个5.3的了。在安装过程中&#xff0c;忘记截图了。。。就直接写吧。准备工作&#xff1a;1&#xff1a;php版本&#xff0c;这个根据自己需要的&#xff0c;自己去下载吧&#xf…

java短信验证码功能发送的验证码如何校验_如何在网站中添加手机短信验证码注册功能?...

这个功能大家都非常熟悉了&#xff0c;就不废话了&#xff0c;直接入正题!下面以使用榛子云短信为例:1. 首先注册一个榛子云账号&#xff0c;注册地址: http://sms_developer.zhenzikj.com/zhenzisms_user/register.html2. 注册完毕后从个人登录入口进入&#xff0c;地址:http:…

做网站用java 还是php_做网站用java还是php

做网站用java还是php&#xff1f;做网站用PHP会更合适&#xff0c; 因为php主要就是用于web网站开发方面&#xff0c;开发比较快速。1&#xff0c;PHP适合于快速开发&#xff0c;中小型应用系统&#xff0c;开发成本低&#xff0c;能够对变动的需求作出快速的反应。而Java适合于…

php网站转为app的工具,网站打包成APP,可以直接将一个网站转成安卓App的Hbuilder工具...

我们有时候会想把自己的网站做成一个app&#xff0c;但是原生的自己没有基础又不会&#xff0c;网上找到的云打包之类的倒是可以直接把网站打包成app&#xff0c;但是免费版的避免不了会有广告或者体验时间限制&#xff0c;收费的又不想花钱&#xff0c;很愁人&#xff0c;今天…

h5网页网站制作代码_h5网页制作和普通网页有什么区别?

h5网页制作和普通网页有什么区别?通常企业在咨询网站建设时&#xff0c;网站建设公司的商务都会把网站流程和前期需要准备的资料&#xff0c;更会详细的介绍一下H5网页制作的一些优势和趋势。其实H5是指第5代HTML网页技术&#xff0c;HTML5是目前互联网前端开发的主流语言&…

pil获得图片_「实践」如何优雅地给网站图片加水印

很多论坛、博客在进行图片上传之后&#xff0c;都会给自己的图像加上水印&#xff0c;这样可以证明这张图片「属于我」或者是「来自我的博客/网站」。那么使用 Serverless 技术来加水印的方法比传统方法好在哪儿呢&#xff0c;本文将对此进行一个简单的分享。传统的加水印的方法…

某高校校园卡网站模拟登陆(php)

让我们先来看登陆界面&#xff0c;这里可以使用卡号或学号&#xff0c;这里我们使用卡号&#xff0c;其实是一样的输入卡号后&#xff0c;点击密码输入框&#xff0c;弹出一个密码键盘输入密码以后&#xff0c;点击验证码框出现验证码输入验证码以后正常登陆下面来看看这个登陆…

关于动态网站的简单爬虫实现

1.XPath的使用 用来解析XML&#xff0c; 也可以用来解析HTML。同Beautiful Soup一样&#xff0c;在XPath中提供了非常简洁的节点选择的方法&#xff0c;Beautiful Soup主要是通过.的方式来进行子节点或者子孙节点的选择&#xff0c;而在XPath中则主要通过/的方式来选择节点。 …

jsp oracle 网站建设_网站建设5大基础知识,你知道吗?

原标题&#xff1a;网站建设5大基础知识&#xff0c;你知道吗&#xff1f;现在网站建设普及度越来越广&#xff0c;做网站建设的企业也越来越多&#xff0c;引起不少对网站建设知识学习的追求者&#xff0c;一时间各种建站系统遍布互联网。在做网站优化中&#xff0c;也许对网站…

多布局怎么搭建_怎么建设文创饰品网站?需要多少钱?

近几年文创周边产品很受欢迎&#xff0c;因此也诞生了不少文化艺术、文创饰品类企业。文创产品要想顺利销售出去&#xff0c;就需要广拓渠道&#xff0c;尤其要注重互联网窗口的建设&#xff0c;因此建设一个自己的官方网站自然是少不了的。「上线了」建站案例文创饰品公司要建…

python3网站攻击_Python实现DDos攻击实例详解

SYN 泛洪攻击 SYN泛洪攻击是一种比较常用的Dos方式之一。通过发送大量伪造的 TCP 连接请求&#xff0c;使被攻击主机资源耗尽&#xff08;通常是 CPU 满负荷或内存不足&#xff09;的攻击方式 我们都知道建立 TCP 连接需要三次握手。正常情况下客户端首先向服务器端发送SYN报文…

node获取图片路径_在Node.js上接入Paddle Lite,让你的网站具备AI推理能力

【飞桨开发者说】李睿&#xff0c;北京邮电大学学生&#xff0c;人工智能和移动开发爱好者。随着桌面端Electron技术逐步崛起&#xff0c;基于Electron开发的代码编辑器、聊天软件、游戏等层出不穷。对于习惯使用Node.js进行后端开发的朋友来说&#xff0c;开发一套漂亮的桌面U…