简单注册(node搭建web服务器,带数据库)

知识点

获取post请求表单数据

get请求可以使用response对象的url属性进行获取,post请求则需要使用response对象的事件监听函数req.on('data',rollback)和req.on('end',rollback),前者表示数据发送,在回调函数中有一个chunk参数可以接收客户端的数据,后者表示数据发送完成。在通过事件监听函数拿到前端数据后,可以使用querystring模块的parse方法对数据进行解析。

点击查看代码
const server = http.createServer((req,res) => {
    let postVal=""
    req.on('data',(chunk) => {
        postVal+=chunk
    })
    req.on('end',() => {
        let formVal = querystring.parse(postVal)
        let userName = formVal.userName
        let passWord = formVal.passWord
        res.end()
    })
})

mysql数据库基本增删改查

  1. 查询:select 字段名 from 表名 (where条件)
  2. 增加:inser into 表名(字段1,字段2···)values(值1,值2···)
  3. 删除:delete * from 表名 (where条件)

res响应乱码问题解决

res.writeHead(200,{"Content-Type":"text/html;charset=utf8"})

代码示例

点击查看代码
//模块引入
const http = require("http")
const querystring = require("querystring")
const mysql = require("mysql")
const server = http.createServer((req,res) => {
    if(req.url!="/favicon.ico"){//阻止空数据
        let postVal = ""
        req.on('data',(chunk) => {
            postVal+=chunk
        })
        req.on('end',() => {
            let formVal = querystring.parse(postVal)
            let userName = formVal.userName
            let passWord = formVal.passWord
            const connection = mysql.createConnection({
                host:"127.0.0.1",
                user:"root",
                password:"1234",
                database:"node"
            })
            connection.connect()
            let sql = "insert into user(userName,passWord) values(?,?)"
            connection.query(sql,[userName,passWord],(err,results,fields) => {
                if(err) throw err
                res.writeHead(200,{"Content-Type":"text/html;charset=utf8"})
                res.write("注册成功")
                res.end()
            })
            connection.end()
        })
    }
})
server.listen(8000,()=>{
    console.log("监听8000端口")
})

效果展示



posted @ 2023-01-13 22:02  Ben-studying  阅读(75)  评论(0)    收藏  举报