一、Mysql数据库
(一)重要概念
1.数据库管理系统(包含多个数据库)----- 数据库(包含多个表)----- 表(包含多个行)----
----- 行(包含多个字段)----- 字段(属性信息)......
2.Mysql模块是在Node JS 中与mysql数据库交互的模块
3.安装
终端输入 npm install mysql
(二)增删改查命令
1.查询命令
1.1语法
--select 字段 from 表名 where 条件
1.2实现方式格式
1.2.1 简易写法
select name,msg,time from comment where 1 或
select name from comment where 1 或
select * from comment 或
select comment.name from comment where 1
1.2.2 标准写法
SELECT `name`,`msg` FROM `comment` WHERE 1
1.2.3 模糊查询
查询name中带n的数据
select * from comment where name like '%小%'
2.插入命令
2.1语法
INSERT INTO 表名(字段1,字段2)values (字段1数据,字段2数据)
--例如:在comment表中增加一条数据
2.2实现
INSERT INTO `comment` (name,msg) values("老6","小河")
-- 注 :id 自动生成(自增) time 自动生成(时间戳) 建表的时候设置
3.删除命令
3.1语法
DELETE FROM `表名` where 条件
3.2实现
3.2.1 通过id
DELETE FROM `comment` where id=4
3.2.2 通过 字段
DELETE FROM `comment` where name="小6"
4.修改命令
4.1语法
UPDATE 表名 set 字段名 = '值' where 条件
4.2 实现
UPDATE `comment` set name='前端' where id=7
(三)node项目
1.初始化项目
npm init -y
2.安装mysql包(插件)
npm i mysql
3.创建index.js项目文件
(四)用nodejs完成连接数据库 代码实现
//------------------------------index.js--------------------------//
//导入
const mysql = require("mysql")
//创建连接
const conn = mysql.createConnection({
host:"localhost", //域名
user:"root", //用户名
password:"123456789", //密码
database:"feedback" //数据库名
})
//连接数据库
conn.connect((err) => {
if (!err) {
console.log("连接数据库成功!");
} else {
console.log("连接数据库失败!", err);
}
});
//创建sql
// 查询命令
const sql = "select * from comment where 1";
// 删除命令
// const sql = "delete from comment where id = 2 "
// 插入命令
// const sql = 'insert into comment (name,msg) values ("张三","你好哇")'
// const sql2 = `insert into comment (name,msg) values
//("auto${Math.random().toFixed(4)}","信息${Math.random().toFixed(4)}")`
// conn.query(sql2, function (err, data) {
// if (err) { console.error(err) }
// })
// 修改命令
// const sql3 = "update comment set name = '李四' where id = 10"
// conn.query(sql3, function (err, data) {
// if (err) { console.error(err) }
// })
//执行sql
conn.query(sql, function (err, data) {
if (err) {
// 打印错误
console.error("错误", err);
} else {
// 把获取到的数据打印
console.log(data);
}
});
// 06 关闭连接
conn.end(function (err) {
if (!err) {
console.log("数据库连接关闭成功!");
} else {
console.log("数据库连接关闭失败!", err);
}
})
二、HTTP服务器
(一)重要概念
NodeJS 可以使用http模块来创建http服务器
http已经被集成在node的基础库中
(二)创建并访问服务器
1.创建js文件
创建server.js文件,用于导入数据
创建conn.js文件,用于设置连接远程数据库
2.1 server.js文件
const conn = require('./conn.js');//导入数据库连接
// 01 导入原生http服务器
const http = require('http');
// 02 创建服务器
const server = http.createServer((req, res) => {
// req,request 浏览器的请求数据
// res,response 服务器返回给浏览器的数据
// 01 状态码 状态码status , 02 数据类型 content-type
// 03 响应体
res.statusCode = 200;//200代表成功
res.setHeader("Content-type", "application/json;charset=utf-8")
// 手动添加的数据
// res.end('{"errCode":0,"msg":"欢迎你的到来","data":{数据库数据}')
// 数据库数据 访问处理
const sql = "select * from comment where 1";
conn.query(sql, (err, data) => {// 执行 sql
if (err) {
var result = { "errCode": 1, "msg": "数据库错误", "err": err }//错误数据返回
} else {
var result = { "errCode": 0, "msg": "获取成功", "data": data }//正确数据返回
}
res.end(JSON.stringify(result))
})
})
// 03 监听端口
server.listen(8080, () => {
console.log("服务器启动成功")
console.log("访问:http://localhost:8080")
})
2.2 conn.js文件
// 01 导入mysql
const mysql = require('mysql')
// 02 创建链接
const conn = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '123456',
database: 'feedback'
})
// 03 连接
conn.connect(err => {
if (err) {
console.err('数据库连接数据:', err)
}
})
// 04 导出连接
module.exports = conn;
三、Express
(一)重要概念
1.简介
基于 Node.js 平台,快速、开放、极简的 Web 开发框架
Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用
2.安装
npm install express
(二)创建并启用
1.创建文件夹
创建public文件夹,用于存放html
创建user.html,自己写的项目
创建main.js,实现代码
2. user.html代码
<body>
<h1>用户</h1>
<a href="/">首页</a>
<a href="/about">关于</a>
</body>
3. main.js代码
// 01 导入express
const express = require('express')
// 02 创建app
const app = express()
// 使用静态文件夹
app.use(express.static("public"))
// 使用json
app.use(express.json())
// 03 定义get put post delete 请求 (定义路由)
//什么是路由:路由对应的页面配置
//监听首页
app.get("/", function (req, res) {
res.send("<h1>首页</h1>")
})
app.post("/", function (req, res) {
// res.send("<h1>post返回的首页内容</h1>")
res.json({
code: 0,
msg: "首页"
})
})
app.get("/about", function (req, res) {
res.send("<h1>关于页面</h1>")
})
// 04 监听端口启动服务
app.listen(8888, () => {
console.log("服务器启动 http://localhost:8888")
})