diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/1.jpeg" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/1.jpeg" new file mode 100644 index 0000000000000000000000000000000000000000..f4678110d355e140267ec28567b0b78061658711 Binary files /dev/null and "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/1.jpeg" differ diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/2.jpeg" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/2.jpeg" new file mode 100644 index 0000000000000000000000000000000000000000..d79a54f09c156861d6863ed7e42579056a9abb77 Binary files /dev/null and "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/2.jpeg" differ diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/3.jpeg" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/3.jpeg" new file mode 100644 index 0000000000000000000000000000000000000000..427dc45fb24380a9514c603bf770c90a711ca0de Binary files /dev/null and "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/3.jpeg" differ diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/4.jpeg" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/4.jpeg" new file mode 100644 index 0000000000000000000000000000000000000000..2e7303b00b83b6a851c3e6ade11c02f5a64169c4 Binary files /dev/null and "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/img/4.jpeg" differ diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/js/\347\255\224\345\244\215.js" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/js/\347\255\224\345\244\215.js" new file mode 100644 index 0000000000000000000000000000000000000000..f021e7d17c1ca41481a8f352ff99a80057af1792 --- /dev/null +++ "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/js/\347\255\224\345\244\215.js" @@ -0,0 +1,40 @@ +// ##作业: + +// 还是把http服务优化下 + +// - 去实现静态资源----css放一个目录,img 放一个目录,js 放一个目录 +// - 同步改成异步(有能力同学) + +console.log("不会!!!------------------------------------"); + +let http = require("http"); +let fs = require("fs"); + +const {url} = require("inspector"); + +let server = http.createServer(); + +server.on('request', function(req, res) { + + //url http://localhost:8080/imgs/demo.png?page=1 + + console.log(req.url); + + if (req.url.lastIndexOf(".") > -1) { + let path = req.url.split("?")[0]; //获取到path路径 /imgs/demo.png + + path = '.' + path; // ./imgs/demo.png + if (fs.existsSync(path)) { + fs.readFile(path, function(err, data) { + console.log(data); + res.write(data); + res.end(); + + }); + } + + } + +}); + +server.listen(8080); diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/\345\274\202\346\255\245\346\226\207\344\273\266\347\232\204\345\206\231\345\205\245-\345\244\215\345\210\273.js" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/\345\274\202\346\255\245\346\226\207\344\273\266\347\232\204\345\206\231\345\205\245-\345\244\215\345\210\273.js" new file mode 100644 index 0000000000000000000000000000000000000000..d25e41752622bbe0cca77b5aa5615bcb10dec3f1 --- /dev/null +++ "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/\345\274\202\346\255\245\346\226\207\344\273\266\347\232\204\345\206\231\345\205\245-\345\244\215\345\210\273.js" @@ -0,0 +1,55 @@ +// 作业: +// 因为异步较难,大家撸一遍,课程笔记就好,笔记已上传 + +let fs = require("fs"); +//在fs模块中没Sync的函数是异步函数 +//open(path, flags[, mode]) + +// path -路径 +// flags -标识 r w a(append) +// mode -不需求 +// callback - 一个回调函数 , 异步函数是没返回值的,都是通过callbak 回调函数去处理 + +// 1.回调的‘写入完成’后输出 ? 2.回调的‘写入完成’先输出? + +// 计算机基础知识 程序是载入的内存,cpu 去调度执行---- +// 文件存在计算机哪? 磁盘速度跟cpu相比?cpu快 +// open cpu 发指令-----磁盘---扫磁道去文件 openSync在同步函数中呢,cpu 等磁盘共做完---下一步 +// 异步就是不让cpu闲着,因为cpu快,在代码中可能会碰到阻塞的场景(磁盘,网络....) + +fs.open("./async.txt", 'w', function(err, fd) { + if (err) { + console.log(err); + } else { + let msg = "今天我们学习异步文件写入,有点晕哦" + bf = Buffer.from(msg); + fs.write(fd, bf, function(err, writeNum, bf2) { + console.log(err); + console.log(writeNum); + console.log(bf2.toString()); + console.log('"done!'); + }); + + /* + today天我们学习异步文件写入,有点晕哦 !------------------------------------------------ + + write的参数: + fd: number, 文件描述符 + buffer: TBuffer,buffer 对象 + offset: number | undefined | null, 偏移量--就是buffer的下标偏移的个数 + length: number | undefined | null, 长度---写入的个数 + position: number | undefined | null, 位置 + callback: 回调函数 err,writeNum,buffer + */ + + console.log("写入完成"); + + fs.close(fd, function(err) { + console.log("我被关闭了哦,别想我"); + console.log(err); + }) + + } +}); + +console.log("study node fs async"); diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\344\272\224\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\215.js" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\272\224\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\215.js" new file mode 100644 index 0000000000000000000000000000000000000000..ee755ce1e7e10e147c774578e12c1a3b9b888b99 --- /dev/null +++ "b/\346\235\250\345\205\213\347\277\224/\347\254\254\344\272\224\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\215.js" @@ -0,0 +1,36 @@ +// 作业: +// 创建一个大文件,然后去计算一下流方式读取的内存消耗 + +var fs = require('fs'); +var os = require('os'); + +var startMem = os.freemem(); //系统的空闲内存 +// 打开一个流---- highWaterMark 设置一次性读取的字节长度 +var readStream = fs.createReadStream('sample.txt', { + highWaterMark: 3 +}); +readStream.setEncoding('UTF8'); + +var data = ''; +readStream.on('open', function() { + console.log('文件已打开'); +}); + +readStream.on('data', function(chunk) { + data + = chunk; +}); + +readStream.on('end', function() { + var endMem = os.freemem(); + //内存大小的基本单位时字节 /1024(转位kb)/1024(转位mb) + console.log((endMem - startMem) / 1024 / 1024); + console.log(data); +}); + +readStream.on('error', function(err) { + console.log(err.stack); +}); + +readStream.on('close', function() { + console.log('结束'); +}); diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/nodesample.sql" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/nodesample.sql" new file mode 100644 index 0000000000000000000000000000000000000000..388f036652788bdc80f75bf23286bdf56ed33a26 --- /dev/null +++ "b/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/nodesample.sql" @@ -0,0 +1,13 @@ +CREATE DATABASE IF NOT EXISTS nodesample CHARACTER SET UTF8; + +USE nodesample; + +SET FOREIGN_KEY_CHECKS=0; + +DROP TABLE IF EXISTS `userinfo`; +CREATE TABLE `userinfo` ( +`Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', +`UserName` varchar(64) NOT NULL COMMENT '用户名', +`UserPass` varchar(64) NOT NULL COMMENT '用户密码', +PRIMARY KEY (`Id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表'; \ No newline at end of file diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\2151.js" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\2151.js" new file mode 100644 index 0000000000000000000000000000000000000000..02f9e6702086cd9652996ef289a2a33e1ba1a95f --- /dev/null +++ "b/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\2151.js" @@ -0,0 +1,68 @@ +//作业: +// 新建表,数据库名与表名自便,用mysql 模块实现curd(增删改查) + +var mysql = require('mysql'); //调用MySQL模块 + +//创建一个connection +var connection = mysql.createConnection({ + host: '127.0.0.1', //主机 + user: 'root', //MySQL认证用户名 + password: 'abcd', //MySQL认证用户密码 + port: '3306', //端口号 + database: 'nodesample', +}); + + +connection.connect(); + + +var userAddSql = 'INSERT INTO userinfo(Id,UserName,UserPass) VALUES(0,?,?)'; +var userAddSql_Params = ['Wilson', 'abcd']; +//增 +connection.query(userAddSql, userAddSql_Params, function(err, result) { + if (err) { + console.log('[INSERT ERROR] - ', err.message); + return; + } +console.log('--------------INSERT-----------------'); +//console.log('INSERT ID:',result.insertId); +console.log('INSERT ID:', result); +console.log('-------------------------------------'); + +var userModSql = 'UPDATE userinfo SET UserName = ?,UserPass = ? WHERE Id = ?'; +var userModSql_Params = ['钟馗', '678',1]; +//改 +connection.query(userModSql,userModSql_Params,function (err, result) { + if(err){ + console.log('[UPDATE ERROR] - ',err.message); + return; +} +console.log('------------UPDATE-----------------'); +console.log('UPDATE affectedRows',result.affectedRows); +console.log('-------------------------------------'); + +var userGetSql = 'SELECT * FROM userinfo'; +//查 +connection.query(userGetSql,function (err, result) { + if(err){ + console.log('[SELECT ERROR] - ',err.message); + return; +} + +console.log('--------------SELECT------------'); +console.log(result); +console.log('-------------------------------------'); + +var userDelSql = 'DELETE FROM userinfo'; +//删 +connection.query(userDelSql,function (err, result) { + if(err){ + console.log('[DELETE ERROR] - ',err.message); + return; + } + +console.log('-----------------DELETE-------------------'); +console.log('DELETE affectedRows',result.affectedRows); +console.log('-------------------------------------'); + +connection.end(); \ No newline at end of file diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\2152.js" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\2152.js" new file mode 100644 index 0000000000000000000000000000000000000000..bc5ac0073256997c84f7de9ab9516441702693c7 --- /dev/null +++ "b/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\2152.js" @@ -0,0 +1,45 @@ +//作业: +// 新建表,数据库名与表名自便,用mysql 模块实现curd(增删改查) + +var mysql = require('mysql'); //调用MySQL模块 + +//创建一个connection +var connection = mysql.createConnection({ + host: '127.0.0.1', //主机 + user: 'root', //MySQL认证用户名 + password: 'abcd', //MySQL认证用户密码 + port: '3306', //端口号 +}); +//创建一个connection +connection.connect(function(err) { + if (err) { + console.log('[query] - :' + err); + return; + + } + console.log('[connection connect] succeed!'); + +}); +//执行SQL语句 +connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) { + + if (err) { + console.log('[query] - :' + err); + + return; + + } + console.log('The solution is: ', rows[0].solution); + +}); +//关闭connection +connection.end(function(err) { + + if (err) { + + return; + + } + console.log('[connection end] succeed!'); + +}); diff --git "a/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\255\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\215.js" "b/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\255\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\215.js" new file mode 100644 index 0000000000000000000000000000000000000000..5cd8639e911ec13768eaa3fdb1feb292ba64a133 --- /dev/null +++ "b/\346\235\250\345\205\213\347\277\224/\347\254\254\345\205\255\346\254\241\344\275\234\344\270\232/\347\255\224\345\244\215.js" @@ -0,0 +1,46 @@ +// ##作业: + +// * 创建一个web服务器 +// * 根据不同的url 去读取页面,给前端渲染 + +//url 有好几种模式: +//常见的 .html 对seo比较友好; +//?page=1&num=2 (域名+'?'+'参数=值'+(如果还有参数+'&')); +//比如 --- http://localhost/?module=home&controller=user&action=login&var=value. + +let http = require("http"); +let fs = require("fs"); + +let server = http.createServer(); + +server.on('request', function(req, res) { + + res.setHead('content-type', 'text/html;charset=utf-8'); + //url 定义成 ?page=(number) 比如 ?page=1(标识为第一个页面) ?page=2(标识为第二个页面) + //let url = req.url; + // if(url=='/index.html'){ + // //res.write("