From d4d071fad9a041fb0fa0659971622cad776fb950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E6=98=B1?= <481025758@qq.com> Date: Thu, 24 Mar 2022 11:05:05 +0800 Subject: [PATCH] 3.24 --- .../MVC\346\241\206\346\236\266/demo.js" | 68 +++++++++++++++ "\346\236\227\346\230\261/Promise/demo1.js" | 78 ++++++++++++++++++ "\346\236\227\346\230\261/http1/demo.js" | 21 +++++ "\346\236\227\346\230\261/http1/files/1.txt" | 1 + "\346\236\227\346\230\261/http1/files/2.txt" | 1 + "\346\236\227\346\230\261/http2/demo1.js" | 35 ++++++++ .../http2/imgs/demo.png" | Bin 0 -> 32456 bytes .../demo.js" | 24 ++++++ .../package-lock.json" | 3 + .../sample.txt" | 9 ++ 10 files changed, 240 insertions(+) create mode 100644 "\346\236\227\346\230\261/MVC\346\241\206\346\236\266/demo.js" create mode 100644 "\346\236\227\346\230\261/Promise/demo1.js" create mode 100644 "\346\236\227\346\230\261/http1/demo.js" create mode 100644 "\346\236\227\346\230\261/http1/files/1.txt" create mode 100644 "\346\236\227\346\230\261/http1/files/2.txt" create mode 100644 "\346\236\227\346\230\261/http2/demo1.js" create mode 100644 "\346\236\227\346\230\261/http2/imgs/demo.png" create mode 100644 "\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/demo.js" create mode 100644 "\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/package-lock.json" create mode 100644 "\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/sample.txt" diff --git "a/\346\236\227\346\230\261/MVC\346\241\206\346\236\266/demo.js" "b/\346\236\227\346\230\261/MVC\346\241\206\346\236\266/demo.js" new file mode 100644 index 0000000..cf691be --- /dev/null +++ "b/\346\236\227\346\230\261/MVC\346\241\206\346\236\266/demo.js" @@ -0,0 +1,68 @@ + + +function demoPromise() { + + let promise = new Promise(function (resolve, reject) { + + setTimeout(function () { + resolve('123456'); + console.log(promise); + + }, 2000) + + + }) + return promise; + +} + + +async function demoAwaitAndPromiseAndAsync() { + + let result = await demoPromise(); + console.log('我在函数的最上面'); + console.log(result); + console.log('我在函数的最下面1'); + console.log('我在函数的最下面2'); + console.log('我在函数的最下面3'); + console.log('我在函数的最下面4'); +} + + + +let mysql = require("mysql"); + +function query(sql, values) { + + return new Promise(function (resolve, reject) { + + let connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'root', port: '3306', database: 'situation' }) + connection.connect(); + + connection.query(sql, values, function (err, result) { + if (err) { + reject(err); + } else { + resolve(result); + } + connection.end(); + + }); + }); + +} + +let sql = 'select * from china where id=?' + + +async function select(sql, values) { + let result = await query(sql, values) + console.log(result); + +} + +select(sql, 2); + + + + diff --git "a/\346\236\227\346\230\261/Promise/demo1.js" "b/\346\236\227\346\230\261/Promise/demo1.js" new file mode 100644 index 0000000..84d20a3 --- /dev/null +++ "b/\346\236\227\346\230\261/Promise/demo1.js" @@ -0,0 +1,78 @@ +let fs = require('fs'); + +let fileName = './1.txt'; + +fs.exists(fileName, function (result) { + + if (result) { + fs.readFile(fileName, function (err, data) { + console.log(data.toString()); + }) + } + +}); + + +let promise = new Promise(function (resolve, reject) { + + setTimeout(function () { + resolve('我是成功状态'); + }, 200); + +}); + + + + +function promiseFun() { + + let promise = new Promise(function (resolve, reject) { + + setTimeout(function () { + resolve('我是成功状态');//把 promise状态改变 + + }, 200); + + }); + return promise; +} +async function demo() { + + let result = await promiseFun(); + + console.log(result); + + console.log('我是函数内部的最下面1'); + + console.log('我是函数内部的最下面2'); + + console.log('我是函数内部的最下面3'); + +} + + + + + +function readFileByPromise(filename){ + + return new Promise(function(resolve,reject){ + fs.readFile(fileName,function(err,data){ + if(err){ + reject(err.message); + }else{ + resolve(data.toString()); + } + }) + }) + +} + +async function handleFile(fileName){ + + let content = await readFileByPromise(fileName); + + console.log(content); +} + +handleFile('./1.txt'); \ No newline at end of file diff --git "a/\346\236\227\346\230\261/http1/demo.js" "b/\346\236\227\346\230\261/http1/demo.js" new file mode 100644 index 0000000..dc3225c --- /dev/null +++ "b/\346\236\227\346\230\261/http1/demo.js" @@ -0,0 +1,21 @@ +let http = require("http"); +let fs = require("fs"); +let server = http.createServer(); + + server.on('request',function(req,res){ + res.setHeader('content-type','text/html;charset=utf-8'); + let url = req.url; + if(url=='/index.html'){ + //res.write("

我是index.html

"); + let bf=fs.readFileSync('./files/1.txt') + res.write(bf); + } + if(url=='/index2.html'){ + //res.write("

我是index.html

"); + let bf=fs.readFileSync('./files/2.txt') + res.write(bf); + } + res.end(); + }) + server.listen(80,function(){ + console.log('server running at http://127.0.0.1')}) \ No newline at end of file diff --git "a/\346\236\227\346\230\261/http1/files/1.txt" "b/\346\236\227\346\230\261/http1/files/1.txt" new file mode 100644 index 0000000..1a96f04 --- /dev/null +++ "b/\346\236\227\346\230\261/http1/files/1.txt" @@ -0,0 +1 @@ +111111111111111111111111 \ No newline at end of file diff --git "a/\346\236\227\346\230\261/http1/files/2.txt" "b/\346\236\227\346\230\261/http1/files/2.txt" new file mode 100644 index 0000000..d83615b --- /dev/null +++ "b/\346\236\227\346\230\261/http1/files/2.txt" @@ -0,0 +1 @@ +222222222222222222222 \ No newline at end of file diff --git "a/\346\236\227\346\230\261/http2/demo1.js" "b/\346\236\227\346\230\261/http2/demo1.js" new file mode 100644 index 0000000..1198f0b --- /dev/null +++ "b/\346\236\227\346\230\261/http2/demo1.js" @@ -0,0 +1,35 @@ + +let http = require("http"); + +let fs = require("fs"); +const { url } = require("inspector"); + +let server = http.createServer(); + +server.on('request',function(req,res){ + + + console.log(req.url); + + if(req.url.lastIndexOf(".")>-1){ + let path = req.url.split("?")[0]; + path='.'+path; + 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\236\227\346\230\261/http2/imgs/demo.png" "b/\346\236\227\346\230\261/http2/imgs/demo.png" new file mode 100644 index 0000000000000000000000000000000000000000..55cbff981c2ad020988a36ac5dcecb1e7614b5ea GIT binary patch literal 32456 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 X@q%~ifaS%l{u<98!w3lANB{r;)I%TF literal 0 HcmV?d00001 diff --git "a/\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/demo.js" "b/\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/demo.js" new file mode 100644 index 0000000..9f4ecf1 --- /dev/null +++ "b/\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/demo.js" @@ -0,0 +1,24 @@ +var fs = require('fs'); +let os = require("os"); +let startMem = os.freemem(); +var readerStream = fs.createReadStream('sample.txt', {highWaterMark:3}); +readerStream.setEncoding('UTF8'); + +readerStream.on('open', function () { + console.log('打开了文件'); +}) + +readerStream.on('data', function (chunk) { + console.log(chunk + '==================='); + data += chunk; +}); +readerStream.on('end', function () { + + let endMem = os.freemem(); + console.log((endMem - startMem) / 1024 / 1024); + console.log(data); +}); + +readerStream.on("close", function () { + console.log('结束了'); +}); diff --git "a/\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/package-lock.json" "b/\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/package-lock.json" new file mode 100644 index 0000000..48e341a --- /dev/null +++ "b/\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/package-lock.json" @@ -0,0 +1,3 @@ +{ + "lockfileVersion": 1 +} diff --git "a/\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/sample.txt" "b/\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/sample.txt" new file mode 100644 index 0000000..a033c55 --- /dev/null +++ "b/\346\236\227\346\230\261/\346\265\201\346\226\207\344\273\266\345\206\205\345\255\230\346\266\210\350\200\227\350\257\273\345\217\226/sample.txt" @@ -0,0 +1,9 @@ +dannishuioyahsd egfbjkfbsdgvewklgedgb + + + + +sfg +gdgrag +rgh +erhrfhb \ No newline at end of file -- Gitee