Smart Brain后端的主要组成部分

首先需要估计有哪些endpoint
1.res=this is working 确认是否成功在工作
2.sign in=>POST = success/fail 登录进去提交表单,所以用POST
3.register=>POST=user 注册提供新的用户信息
4./profile: user Id–>GET=user 需要看登录进去是谁
5./image PUT–>user 需要统计查过多少张图

Sign in 和 Register

Sign in需要找到数据库中是否有相符合的邮箱和对应密码。

TypeError: Cannot read property ‘email’ of undefined
前端发来的数据是JSON,后端需要用 express middleware:用body_parser在中间处理一下request

需要注意的是,在用POSTMAN做测试时,需要选好发送什么类型的数据,目前我们选的是JSON

注册页将用户三个信息:姓名,邮箱,密码发送至服务端。然后服务端将该用户加入数据库

/Profile: id

Profile:id 进入ID界面后就能得到用户信息。需要遍历数据库,找到对应的ID,返回该user的所有信息。

var,const,let的区别

这三个都是JS用来声明变量的关键字。 const和let都是ES6新增的。

(1)const:声明的是一个只读变量,声明之后不允许改变其值,且必须初始化。对于boolean这种原始值,就是不能变,是常量。但如果是对象,object,array里面内容可以改变

(2)let:不允许在同一作用域中重复声明。

(3)var:允许在同一作用域中重复声明。

/image

每个人检测的图片数目,每个ID出现一次,他的entries就加上1。

Storing User Passwords

bcrypt-nodejs

保证用户的信息安全,在存储密码时不能直接储存。
在register页面时,密码会自动对应生成的一段字符串,就算两次输入一样的,字符窜也会不一样。

在sign in页面时需要检测密码是否能对上,compare函数比较密码和字符串能否对上

Connecting to Front End

同时运行前端和后端,但是他们port相同所以会报错,因此其中一个port要改一下。我们将服务器改为3001port。

cors package

cors 是跨域中间件。前端与后端端口号不同,所以需要跨域。

在server.js中用cors来实现跨域

上传登陆信息

之前SignIn.js 我们使用的是const,而现在涉及到状态,就要改成 class SignIn

目前需要上传邮箱和密码,所以一共有两个smart components: Email 和 Password

下面两个input,email和password,设置onChange,这样可以更新状态

下面SIGNIN 按钮,onclick也需要换成onSubmit,然后之前页面转换就放进 onsubmit里面


在onSubmitSignIn中添加fetch,数据传输给服务器,一般fetch默认是GET,所以需要写好method

只有成功登陆才会跳转界面,用.then(),只有回复 success 才能进入’home’界面

在登陆时,有时会出现到了home page又闪退的bug。主要是会强制浏览器重载。需要加上

上传注册信息

与登录页面类似,这里需要有三个smart components:name,email,password

剩下的INPUT也需要加上onChange或者onClick

在登录进去后,有一个user profile界面。所以回到APP.js,我们在constructor里需要加入user信息,并且加上一个loadUser,这样可以更新登录用户的信息。

之前服务器Register会返回注册用户,在Register页面里面,提交时也更新用户信息。


并且不要忘了,将loadUser给register

目前SIGN IN 和 register的前后端已经成功连接上,服务器可以收到来自前端的request,前端也收到对应 response。

Update user profile

每次输入一个图片,需要更新User 的entries。点击提交图片一次,就会增加一次entries,所以需要在onButtomSubmit里面加上fetch(),这次是把登陆的ID发送过去,服务器确认ID后,该用户的entries加1。并返回entries值
App.js:

服务器:

值得注意的是,注册进去可以计数,登陆不行,因为登陆中没有loadUser, id没有更新,id默认为‘ ’,服务端只会返回404。
在后面database设置以后,server.js中signin也会返回用户数据,加上LoadUser,sign in也可以计数了。

计数显示在rank.js里面

SmartBrain后端相关推荐

  1. 后端怎么防止重复提交?(常用的做法)

    后端怎么防止重复提交?(常用的做法) 客户端的抖动,快速操作,网络通信或者服务器响应慢,造成服务器重复处理.防止重复提交,除了从前端控制,后台也需要控制.因为前端的限制不能解决彻底.接口实现,通常要求 ...

  2. 大三后端暑期实习面经总结——SSM微服务框架篇

    博主现在大三在读,从三月开始找暑期实习,暑假准备去tx实习啦!总结下了很多面试真题,希望能帮助正在找工作的大家!相关参考都会标注原文链接,尊重原创! 目录 1. mvc.mvp.mvvm MVC架构 ...

  3. 前后端分离必备工具:Swagger快速搞定(整合SpringBoot详细教程)

    本文根据狂神教学视屏同步所做笔记 目录 一.Swagger简介 1. 前后端分离 2. Swagger引入 二.SpringBoot集成Swagger 1. 新建springboot项目 2. 导入S ...

  4. CPU架构的llvm后端

    Creating an LLVM Backend for the Cpu0 Architecture Backend structure • TargetMachine structure • Add ...

  5. 动态表单工作量给后端

    动态表单工作量给后端 让前端远离互相伤害 一个IT公司的日常就是程序员.产品经理.UI等同事们的互相残杀: 应用,不少前端就备受煎熬,除了修改需求的魔咒外,还有后端的重构和调整接口诅咒,即便需求没改, ...

  6. MindSpore后端运行类

    MindSpore后端运行类 Q:如何在训练过程中监控loss在最低的时候并保存训练参数? A:可以自定义一个Callback.参考ModelCheckpoint的写法,此外再增加判断loss的逻辑: ...

  7. 用于ONNX的TensorRT后端

    用于ONNX的TensorRT后端 解析ONNX模型以使用TensorRT执行. 另请参阅TensorRT文档. 有关最近更改的列表,请参见changelog. 支持的TensorRT版本 Maste ...

  8. 前后端分离nginx配置,同时解决跨域问题

    背景 现在,web开发的前后端分离技术越来越火爆,由于最近的公司官网使用了前后端分离的方案,这里就来记录一下前后端分离的项目部署.这里我们使用的前端框架是Vue.js,后台使用Laravel7提供数据 ...

  9. node、Mongo项目如何前后端分离提供接口给前端

    node接口编写,vue-cli代理接口方法  通常前端使用的MocK 数据的方法,去模拟假的数据,但是如果有node Mongodb 去写数据的话就不需要在去mock 数据了,具体的方法如下. 首先 ...

最新文章

  1. apache添加ssl协议实现用户认证
  2. Django中的常用命令
  3. 洛谷 P4175: bzoj 1146: [CTSC2008]网络管理
  4. boost::endian模块实现conversion的测试程序
  5. Vue全家桶实战01_【从入门到放弃系列】
  6. socket工具android,Android通过socket长连接实现推送
  7. 位运算实现四则运算(C++实现)
  8. 核心系统100%上云!全球最大流量洪峰,阿里云扛住了
  9. Linux工作笔记-两Linux系统互传文件(使用SSH)
  10. 珍珠全面屏!华为畅享9S/9e正式发布:千元三摄加持
  11. 20190804:有效的括号(误删补发)
  12. Halcon 抓圆工具spoke
  13. type=button 字体大一点_机械制图中文字用什么字体?你所在的企业图纸中文字又是什么字体...
  14. 华为手机应用安装错误码分析汇总
  15. 失败的面试小记,项目面,酷家乐面筋
  16. 苹果中国全系降价:iphone最高降500元,用户可退差价
  17. 【转】韩寒:跳出棋盘的棋子
  18. python plt图片保存emf类型_matplotlib---保存图片出现的问题
  19. Wsl2 Ubuntu18.04图形化界面,亲测成功
  20. 购物足迹功能php,wordpress实现访客足迹功能

热门文章

  1. 网易云音乐用户画像资产治理及业务赋能
  2. 国二C语言:VC++2010学习版
  3. PCB设计中的邮票孔封装如何制作?
  4. 2023年全国最新二级建造师精选真题及答案11
  5. python流程语句_Python流程控制语句
  6. 关于STM32的串行异步通信
  7. Python如何创建指定容量的列表
  8. C4.5 决策树算法对UCI wine数据集分类的实现(MATLAB)
  9. Linux系统之网络配置
  10. 互动投影技术解决方案