使用node.js操作 数据库

结构安排:

创建仓库 安装 使用的包  (express ,  mysql)

utils中的tool.js

// 1.加载myspl
var mysql = require("mysql");

// 2.创建连接
var connection = mysql.createConnection({
    host: "localhost", // 你要连接的数据库服务器的地址
    port: 3306, // 端口号
    user: "root", // 连接数据库服务器需要的用户名
    password: "root", // 连接数据库服务器需要的密码
    database: "mydata", //你要连接的数据库的名字
});

//3.连接数据库
connection.connect((err) => {
    // 如果有错误对象,表示连接失败
    if (err) return console.log("数据库连接失败");
    // 没有错误对象提示连接成功
    console.log("mysql数据库连接成功");
});


// 获取ip
function getClientIp(req) {
    return (
        req.headers["x-forwarded-for"] ||
        req.connection.remoteAddress ||
        req.socket.remoteAddress ||
        req.connection.socket.remoteAddress
    );
}

// 导出 connection , getClientIp  工具 
module.exports = { connection, getClientIp };

router中的addStudents.js

  // 引入express 与 fs模块
const express = require('express')
const fs = require('fs')

// 导入公共使用方法
const utils = require('../utils/mySql')

// 使用 express中的路由 进行 URL匹配
const router = express.Router()

// 创建接口
router.post('/addstudents', (req, res) => {
    // 将接受来的数据 结构赋值
    const { name, age } = req.body
    // 将 变量写入 SQL语句
    const sql = `insert into sb (name,age) values ('${name}',${age})` /* 注意 传到数据
库的数据name 要用字符串 所以在 $外加 ''  */

     // 执行SQL语句  使用的是utils内的工具
    utils.connection.query(sql, (ree, data) => {
        if (ree) {
            res.json({ msg: "添加失败", code: 0 });
        } else {
            res.json({ msg: "添加成功", code: 1 });
        }
    }) 
    // 使用 fs 将 ip地址 及时间打印出来   使用的是utils内的工具
    let ip = utils.getClientIp(req)
    let item = new Date()
    fs.appendFile('访问记录.txt', '访问地址:' + ip + '访问时间:' + item + '\n', (res) => {})
})
// 将 该路由传出去
module.exports = router

 router中的findStudent.js

const express = require('express')
const fs = require('fs')
const utils = require('../utils/mySql')
const router = express.Router()
router.get('/students', (req, res) => {
    const sql = 'select * from sb '
    utils.connection.query(sql, (ree, data) => {
        if (ree) {
            res.json({ msg: "查找失败", code: 0 });
        } else {
            res.json({ msg: "查找成功", code: 1, data });
        }
    })
    let ip = utils.getClientIp(req)
    let item = new Date()
    fs.appendFile('访问记录.txt', '访问地址:' + ip + '访问时间:' + item + '\n', (res) => {})
})

module.exports = router

server.js

// 导入 experss  模块
const experss = require('express')
const app = experss()

// 这里 接收路由文件
const add = require('./router/addStudent')
const find = require('./router/findStudent')
// 接收 普通字符的请求体
app.use(experss.urlencoded())

// 使用路由文件
app.use('/router', add)
app.use('/router', find)

//打开端口
app.listen(4000, () => {
    console.log('4000端口 已打开');
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值