基于树莓派上Node.JS开发的便携式教学工具--Web编程实验项目(1)Express+Mysql实现登录注册

基于树莓派上Node.JS开发的便携式教学工具

前言:

大学入学的时候才开始接触编程,在这学期的Web编程课程大作业中,选择了树莓派上的Node.JS开发项目,想要锻炼下自己,结果确实感觉到有些力不从心,深刻感受到自己的自学能力还有所不足,在开始这个项目的时候并不确定自己能否将大部分功能完成,只好将自己学习过程中成功,失败的经历展示出来。
由于对于硬件方面的处理实在是不太开窍,先在windows将前后端稍微处理了一下。

页面设计:

基于树莓派上Node.JS开发的便携式教学工具--Web编程实验项目(1)Express+Mysql实现登录注册_第1张图片
页面较简陋,具体的思路为选择身份(教师or学生)---->选择操作(登录or注册)

数据库存储:

根据登录身份的不同,将调用不同的数据库,本实验项目中以Mysql为数据库。(主要是上个实验项目也使用了Mysql,所以并没有考虑使用MongoDB搭配Node.JS)

Identity Name Password
char(20):teacher or student char(20) :to be defined char(20): to be defined

建表语句如下:
```CREATE TABLE students(
identity varchar(20) DEFAULT NULL,
name varchar(20) DEFAULT NULL,
pwd varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

存储如下:
基于树莓派上Node.JS开发的便携式教学工具--Web编程实验项目(1)Express+Mysql实现登录注册_第2张图片

连接数据库:

具体和上一个大作业连接数据库方式相同,引包+连接

var mysql=require('mysql');
var connection = mysql.createConnection({
     
    host:'localhost',
    port:'3306',
    user:'root',
    password:'root',
    database:'smp'
})
//将相关数据写入
  var query1 = "select * from students where name='"+name+"' and pwd='"+pwd+"'"
   connection.query(query1,function(err,result){
     
        if (err) throw err;
        console.log("!!!",result)
        if(result.length==0){
     
            res.send("用户名或密码错误")
        }else{
     res.send("

登录成功,同学好!

")} })``

代码实现:

index.js

var express=require('express')
var path = require('path')

const bodyParser = require('body-parser');

var router = require('./router.js')

var app = express()

app.use(bodyParser.urlencoded({
     extended:false}))
app.use(bodyParser.json())

app.use('/node_modules/',express.static(path.join(__dirname,'./node_modules/')))

app.engine('html',require('express-art-template'))

app.set('views',path.join(__dirname,'./views/'))

app.use(router)

app.listen(3030,function(){
     
    console.log('running');
})

主要为建立服务器,引一系列以支持获取get post请求参数的技术

~~~var  express=require('express');
var router=express.Router()
var app=express();

var ejs=require('ejs')
app.engine('.html',ejs.__express);
app.set('view engine','html')//支持加载html文件
var bodyParser=require('body-parser')
var mysql=require('mysql');
var connection = mysql.createConnection({
     
    host:'localhost',
    port:'3306',
    user:'root',
    password:'root',
    database:'smp'
})
router.get('/register',function(req,res){
     
    res.render('register.html')
})
router.post('/register',function(req,res){
     
    console.log(req.body);
    var identity='student';
    var  name=req.body.name;
    var pwd=req.body.pwd;
    var user=[identity,name,pwd];
    var query1 = 'insert into students(identity,name,pwd) values(?,?,?)';
    connection.query(query1,user,function(err,result){
     
    if(err) throw err;
    console.log("***")
    res.render("login.html")
    })
})

注册功能运用了get post请求向用户展示指定页面,并将表单提供的数据添加至数据库
登录功能则将表单提供数据与数据库数据对比,查找成功则登陆成功,失败则返回:用户名或密码错误
基于树莓派上Node.JS开发的便携式教学工具--Web编程实验项目(1)Express+Mysql实现登录注册_第3张图片
所有代码列表如上图

后记

由于之前对于web前后端一窍不通,努力学习了下express包的相关功能将简陋的登录与注册功能实现,对于接下来的一些功能,我也将尽力进行完善。
这次大作业对于我而言确实十分具有挑战性,虽然实验项目的进展不是很理想,但对我的学习能力以及实践能力确实有了不少的帮助。

你可能感兴趣的:(mysql,html,javascript,node.js)