diff --git "a/\346\270\251\346\230\237\350\276\260/2024-2.29-\345\256\211\350\243\205node\345\222\214npm.md" "b/\346\270\251\346\230\237\350\276\260/2024-2.29-\345\256\211\350\243\205node\345\222\214npm.md" new file mode 100644 index 0000000000000000000000000000000000000000..c5d342c68df01bc3bb6ee3dfc24035dff07d1337 --- /dev/null +++ "b/\346\270\251\346\230\237\350\276\260/2024-2.29-\345\256\211\350\243\205node\345\222\214npm.md" @@ -0,0 +1,15 @@ + # 安装node和npm + + +## npm +npm是Node.js的包管理工具(全称package manager)。 + +npm init ====>初始化一个新的npm项目 + +npm -v ====>检测npm是否安装 + +npmm i koa ====>镜像 + +## 执行node代码 + +node 要执行js文件的路径 diff --git "a/\346\270\251\346\230\237\350\276\260/2024-3.1-\346\250\241\345\235\227.md" "b/\346\270\251\346\230\237\350\276\260/2024-3.1-\346\250\241\345\235\227.md" new file mode 100644 index 0000000000000000000000000000000000000000..75dee75b1d75aa2dd53a21def7d039e4f80f2b41 --- /dev/null +++ "b/\346\270\251\346\230\237\350\276\260/2024-3.1-\346\250\241\345\235\227.md" @@ -0,0 +1,31 @@ + +# 模块 +在node环境中,一个.js文件就称之为一个模块(module). + +当一个模块编写完毕,就可以被其他地方引用。 +## 模块引用 +暴露函数 +``` +hello.js + var s ='Hello'; + function fn(name){ + console.log(s + ',' +name+'!'); + } + module.exports = fn //(将函数fn作为模块的输出暴露出去,其他模块可以使用fn函数了) +``` +其他模块引用函数 +main.js + + var fn = require('./hello'); + var s = 'MM'; + fn(s);//Hello,MM! + +其中require函数的引用代表,引入的模块作为变量保存在fn变量中,所以main.js模块中引用了fn()函数,可以在main.js中使用它了。 +## 总结 +``` +要在模块中对外输出变量,用: +module.exports = var; +输出的变量可以是任意对象、函数、数组等等。 +要引入其他模块输出的对象,用: +var foo = require('other_module'); +``` \ No newline at end of file diff --git "a/\346\270\251\346\230\237\350\276\260/2024-3.2-global.md" "b/\346\270\251\346\230\237\350\276\260/2024-3.2-global.md" new file mode 100644 index 0000000000000000000000000000000000000000..e47c7928e0699898c6acdd69d896d5686e02f834 --- /dev/null +++ "b/\346\270\251\346\230\237\350\276\260/2024-3.2-global.md" @@ -0,0 +1,77 @@ + +# global +``` +JavaScript有且仅有一个全局对象,在浏览器中,叫window对象。而在Node.js环境中,也有唯一的全局对象,叫global; +``` + +## process +通过process对象可以拿到许多信息: +``` +process.version; +'v5.2.0' +> process.platform; +'darwin' +> process.arch; +'x64' + ``` +## 判断js的执行环境 +``` +if (typeof(window) === 'undefined') { + console.log('node.js'); +} else { + console.log('browser'); +} +``` +## 同步、异步 + +同步:代码简单,程序将等待IO操作(程序运行有先后顺序) + + 异步:不用等待IO操作,但代码较麻烦(程序运行无顺序) +fs读取文件 + +- 异步读取文件: +``` +var fs = require('fs'); + +fs.readFile('sample.txt', 'utf-8', function (err, data) { + if (err) { + console.log(err); + } else { + console.log(data); + } +}); +``` + - 同步读取文件: +``` +var fs = require('fs'); + +var data = fs.readFileSync('sample.txt', 'utf-8'); +console.log(data); +fs写文件 +``` + - 异步写文件 + ``` +var fs = require('fs'); + +var data = 'Hello, Node.js'; +fs.writeFile('output.txt', data, function (err) { + if (err) { + console.log(err); + } else { + console.log('ok.'); + } +}); +``` + - 同步写文件 + ``` +var fs = require('fs'); + +var data = 'Hello, Node.js'; +fs.writeFileSync('output.txt', data); +追加写入 +若 fs.writeFile() 不添加配置 则是替换式写入, +追加式写入 +fs.writeFile(x,x,{flag:'a'},x); +fs.appendFile(x,x,x,x); +fs.appendFileSync(x,x,) +``` \ No newline at end of file