导出模块
有两种方式
module.exports 导出模块一个文件只能使用一次 ; 使用多次会产生覆盖, 最后的生效
function fun(){
console.log(100);
}
导出模块 统一的导出方式
module.exports = {
fun
}
exports.fun = function(){
console.log('exports 导出模块');
}
exports.count = function(){
console.log('exports 导出模块 test 模块');
}
exports.num = 'hello world'
具体的操作
exports 可以导出多个模块,当我们引入模块式,会得到一个对象集合
{ fun: [Function], test: [Function], num: ‘hello world’ }
可以使用对象解构的形式获取具体的模块
命令行是在引入的文件夹运行的
模块之间是独立的,可以导出,进行运算也可以引入
注意:如果导入的是自定义模块, url 地址必须用前缀 ./
在同级下引入或者导出模块 都要加 点杠 ./
const {
test}=require('./01-module');
引入的模块都放在文件开头,这是一种规范
导入模块
导入模块就一种方式require(’’)
const http = require('http');
const url = require('url');
通过服务器对数据库 mysql 进行增删改查
nodejs 链接数据库 需要下载 mysql 包
-
-
下载
npm install mysql
-
-
-
引入
const mysql = require(‘mysql’)
-
-
- 创建mysql的链接配置项
npm 下载受网络影响(镜像在国外); 一般都会使用 cnpm(镜像源在国内) 代替 npm
使用cnpm 需要全局安装
输入命令行 npm install cnpm -g
当输入这行命令时,就能在这台电脑的任何地方用cnpm代替npm
安装完成后:
cnpm -v 检查是否成功
然后可以使用cnpm 下载安装第三方包
输入命令行 cnpm i mysql
当下载成功后就会引入一个文件夹,链接数据库
nodejs 链接数据库执行机制
- 引入数据库模块
const mysql = require('mysql')
- 数据库链接的配置项
const conn = mysql.createConnection({
host:'localhost', // 服务器地址,
user:'root', // 用户名
password:'root', // 密码
database:'yunmeng' // 链接的数据库名字
})
- 建立链接
conn.connect();
- 执行操作: 增删改查 执行一个方法 query 方法, 当我们执行query()方法时会自动建立链接
query()方法的参数: 第一个参数 sql 是对数据库 的操作
查询语句
let sql = ‘select * from student’
插入语句
let sql = ‘insert into student values (“10”, “张三”, “2020-2-2 10:10:10”, “男”)’
修改语句
let sql = 'update student set Sname = “王五” where Sid = “01” ';
删除语句
let sql = ‘delete from student where Sid=“10”’;
err 失败
result 成功
如果执行的是查询语句 select , result是一个结果集(数据)
(数组,数组中的每个值是一个对象,每个对象代表一条记录)
如果执行的 insert update delete 语句; result 是一个执行的结果(状态)
当查询语句 select成功时,
OkPacket这是显示格式,不用管,不会影响输出,输出时就没有了
OkPacket {
fieldCount: 0,
affectedRows: 1, // 受影响的行数 通过该字段可以判断操作是否成功
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 // 改变的函数 执行update 语句时
}
创建数据库链接,这是具体的流程
const mysql = require('mysql')
// 创建数据库链接
const conn = mysql.createConnection({
// 数据库链接的配置项
host:'localhost', // 服务器地址,
user:'root', // 用户名
password:'root', // 密码
database:'zuoye' // 链接的数据库名字
})
// 建立链接
conn.connect();
// 执行操作: 增删改查 执行一个方法 query 方法, 当我们执行query()方法时会自动建立链接
query()方法的参数: 第一个参数 sql
conn.query(sql, (err, result) => {
// err 失败
result 成功 如果执行的是查询语句 select , result是一个结果集(数据)(数组,数组中的每个值是一个对象,每个对象代表一条记录)
如果执行的 insert update delete 语句; result 是一个执行的结果(状态)
if(err){
console.log(err);
return;
}
console.log(result);
})
*/
查询语句
let sql = 'select * from student'
// 插入语句
// let sql = 'insert into student values ("10", "张三", "2020-2-2 10:10:10", "男")'
// 修改语句
// let sql = 'update student set Sname = "王五" where Sid = "01" ';
// 删除语句
// let sql = 'delete from student where Sid="10"';
// 条件语句 limit like order by group by 聚合函数
conn.query(sql, (err, result) => {
if(err){
console.log(err);
return;
}
console.log(result);
/*
OkPacket {
fieldCount: 0,
affectedRows: 1, // 受影响的行数 通过该字段可以判断操作是否成功
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 // 改变的函数 执行update 语句时
}
*/
})