mysql数据库的初步使用以及websocket.io搭建聊天室

本文介绍了如何配置MySQL数据库,包括下载、初始化、安装、设置密码以及使用基本的SQL操作。此外,还涉及了使用WebSocket.io创建聊天室的初步步骤,包括html文件和express框架的应用。
摘要由CSDN通过智能技术生成

mysql数据库
下载后先在文件夹下新建my.ini配置文件,可以去网上搜一下。
新建一个data空文件夹
cmd 运行管理员模式,打开 进入bin下,mysqld –initialize -console 会对数据库进行初始化,并能得到一个随机密码(8.0版本)
之后运行命令行 mysqld –install 安装
net start mysql 运行数据库
mysql -u root -p 进入修改密码
用初始密码登录,修改密码。完成配置。
打开数据库也可以在电脑服务里面开启 / 关闭

mysql语言
INSERT INTO 表(字段列表) VALUE(‘值‘’)
INSERT INTO ‘my-data(username,password)’ VALUE(‘zhangsan’,’1232’)
DELETE FROM 表WHERE 条件
DELETE FROM my-data WHERE username=’zhangsan
UPDATA 表 SET 字段-新值,字段-新值… WHERE 条件
UPDATA my-data SET name-lisi, password-321… WHERE username=zhangsan
SELECT 字段列表FROM 表 WHERE 条件
SELECT password FROM my-data WHERE username=zhangsan

websocket.io

const http = require('http')
const io = require('socket.io')
const fs = require('fs')
const mysql = require('mysql')


//引入数据库
let db = mysql.createPool({
  host:'localhost',user:'root',password:'123456',database:'mysql'})

//http服务
const httpServer = http.createServer((req, res) => {
    fs.readFile(`www${req.url}`, (err, data) => {
        if (err) {
            res.writeHeader(404)
            res.write('not found')
        } else {
            res.write(data)
        }
        res.end()

    })
})
httpServer.listen(8080)

//io服务
let socker = []
const seServer = io.listen(httpServer)
seServer.on('connection', (sock) => {
    socker.push(sock) // 添加所有来客
    // 记录当前状态
    let cur_username = ''
    let cur_id = 0

    //校验注册
    sock.on('reg', (user, password) => { // 监听来自js前台的数据
        //1.校验数据
        if (!regs.username test(user)) {
            sock.emit('reg-ret', 1, '用户名不符合规范') // 返回一个接口给前台(‘事件’,code,‘msg’)

        } else if(!regs.password test(password)) {
            sock.emit('reg-ret', 1, '密码不符合规范')
        } else {
        // 2. 用户是否被注册 --数据库查询
            db.query('SELECT ID FROM my_user WHERE username=`${user}`', (err, data) => {
                if (err) {
                    sock.emit('reg-ret', 1, '数据库出错')
                } else if (data.length > 0) {
                    sock.emit('reg-ret', 1, '该用户已被注册')
                } else {
        // 3.插入数据
                    db.query('INSERT INTO my_user(username, password, online) VALUE(`${user}`,`${password}`, 0)', (err, data) => {
                        if (err) {
                            sock.emit('reg-ret', 1, '数据库出错')
                        } else {
                            sock.emit('reg-ret', 0, '注册成功')
                        }
                    })          
                }
            })  
        }

    })

    //校验登录
    sock.on('login', (user, password) => {
        // 校验数据
        if (!regs.username.test(user)) {
            sock.emit('login-ret', 1, '用户名不符合规范')
        } else if (!regs.password test(password)) {
            sock.emit('login-ret', 1, '密码不符合规范')
        } else {
            // 查询
            db.query(`SELECT ID, username FROM my_user WHERE username=${user}`, (err, data) => {
                if (err) {
                    sock.emit('login-ret', 1, '数据库出错')
                } else if (data.length === 0) {
                    sock.emit('login-ret', 1, '该用户不存在')
                } else if (data[0].password !== password) {
                    sock.emit(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值