nodejs:express+mysql实现简单的登录注册功能

前提:有mysql基础和express框架基础,下文中基础问题不再描述

准备工作:1.在自己的项目目录下进入cmd,执行命令express demo1创建一个服务器项目 2.进入demo1,执行命令npm i,安装依赖模块 3.执行命令npm i mysql 安装mysql模块 4.在自己的数据库中创建一个用于存储用户名和密码的简单数据库。如图:

nodejs:express+mysql实现简单的登录注册功能_第1张图片

 

分析:首先要有html页面,用于登录和注册,所以有login.html(登录界面)和register.html(注册界面)放于public下,在两个页面中都有form表单,点提交时会以post方式向服务器发送请求,所以要在服务器端接收,处理,返回数据,这些处理在js文件中进行。所以在routes文件夹下创建一个login.js用于处理登录和注册的请求。总共有三个文件。

nodejs:express+mysql实现简单的登录注册功能_第2张图片 完整项目文件​​​​结构

提示:三个文件没有先后顺序,开发过程中需要来回修改和调试,本想按照实际步骤分析和讲解后来发现太繁琐,所以只能偷懒进行简单分析和完整代码的展示,还需要读者自己去分析和思考。开发过程中肯定会遇到很多的error,查找错误时不要忽略error信息,看不懂可复制,百度。建议每实现一点功能就运行调试,否则最后可能会有一大堆error,修改不完。

代码展示:

app.js    

在创建完login.html ,register.html和login.js后,在app.js中添加或修改以下代码到相应位置

nodejs:express+mysql实现简单的登录注册功能_第3张图片 将login路由引入到app.js中,并将此路由作为根目录

nodejs:express+mysql实现简单的登录注册功能_第4张图片

 

login.html




    
    
    
    Document
    


    

请登录

用户名:

密    码:

注册

 

nodejs:express+mysql实现简单的登录注册功能_第5张图片 login.html效果图

 

register.html




    
    
    
    Document
    


    
填写用户名:

填 写 密 码:

nodejs:express+mysql实现简单的登录注册功能_第6张图片 register.html效果图

 

login.js

var express = require('express')
var path = require("path");
var mysql = require('mysql')
var router = express.Router()

var connection = mysql.createConnection({
    host:'localhost',
    port:'3306',
    user:'root',
    password:'1421826010vas',//修改为自己的密码
    database:'wuliaoren'//修改为自己的数据库
})
connection.connect()
router.get('/',function(req,res){
    res.sendfile(path.join(__dirname,"../public/login.html"))
    //_dirname:当前文件的路径,path.join():合并路径
})
/**
*登录验证功能
*/
router.get('/login',function(req,res){
    var name = req.query.name
    var pwd = req.query.pwd
    var query1 = "select * from login 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("

登录成功,欢迎

")} }) }) /*** * 注册功能 */ router.get('/register',function(req,res){ var name = req.query.name var pwd = req.query.pwd var user = [name,pwd]; var query1 = 'insert into login(name,pwd) values(?,?)'; connection.query(query1,user,function(err,result){ if(err) throw err; console.log("***") res.sendfile(path.join(__dirname,"../public/login.html")) }) }) module.exports = router;

测试结果不再展示,如有更好方案或问题欢迎交流学习,q1421826010

你可能感兴趣的:(nodejs,express,nodejs,express,登录)