nodejs就是一个基于 Chrome V8 引擎的 JavaScript 运行在服务器端的js npm 包管理工具,新版的nodejs已经集成 nvm 版本管理工具 nrm 源的管理工具 yarn 经过重新设计的崭新的 npm 客户端 npx npm 包执行器 下载: https://nodejs.org/dist/v16.15.0/ 配置全局安装的模块路径和缓存路径 在nodejs根目录,创建node_global,node_cache文件夹,然后cmd执行 npm config set prefix "D:\A\nodejs\node_modules\node_global" npm config set cache "D:\A\nodejs\node_modules\node_cache" 配置环境变量 创建 NODE_PATH 变量 变量值为node_modules地址-->> NODE_PATH C:\nodejs\node_modules path 中添加 C:\nodejs 和 C:\nodejs\node_global npm install -g nrm #下载nrm nrm ls #查看可切换的镜像源 nrm use taobao #切换淘宝镜像源 npm get registry #查看镜像源使用状态 #下载包npm命令,查看版本 npm -v npm install npm -g #升级 npm install express #安装express 卸载:npm uninstall express 更新:npm update express 搜索:npm search express npm list -g #查看所有全局安装的模块 npm ls -g var express = require('express'); #代码引入 https://www.electronjs.org/ https://github.com/electron/electron --------------------------------------------------------------------linux下安装 # wget https://nodejs.org/dist/v16.15.0/node-v16.15.0-linux-x64.tar.gz // 下载 # tar -zxvf node-v16.15.0-linux-x64.tar.gz -C /usr/local/src // 解压 # cd node-v16.15.0-linux-x64/ // 进入解压目录 # ./bin/node -v ln -s /usr/local/src/node-v16.15.0-linux-x64/bin/npm /usr/local/bin/ ln -s /usr/local/src/node-v16.15.0-linux-x64/bin/node /usr/local/bin/ ln -s /usr/local/src/node-v16.15.0-linux-x64/bin/nrm /usr/local/bin/ -----------------------------新建server.js,然后运行node server.js ,在浏览器访问127.0.0.1:8888 var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(8888); console.log('Server running at http://127.0.0.1:8888/'); ============================================================================================语法实例 ---------------------------------------------------------------------异步方法 var fs = require("fs"); //阻塞代码 var data = fs.readFileSync('input.txt'); console.log(data.toString()); console.log("程序执行结束!"); //非阻塞代 fs.readFile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.toString()); }); console.log("程序执行结束!"); ---------------------------------------------------------------------事件 var events = require('events'); var eventEmitter = new events.EventEmitter(); //创建 var connectHandler = function connected() { console.log('连接成功。'); eventEmitter.emit('data_received');//触发 } eventEmitter.on('connection', connectHandler);//绑定 eventEmitter.on('data_received', function(){ console.log('数据接收成功。'); });//绑定2 eventEmitter.emit('connection');//触发 console.log("程序执行完毕。"); ---------------------------------------------------------------------Buffer 类 Buffer.alloc(size[, fill[, encoding]]) 返回一个指定大小的 Buffer 实例,如果没有设置 fill,则默认填满 0 Buffer.allocUnsafe(size) 返回一个指定大小的 Buffer 实例,但是它不会被初始化,所以它可能包含敏感的数据 Buffer.from(array) 返回一个被 array 的值初始化的新的 Buffer 实例(传入的 array 的元素只能是数字,不然就会自动被 0 覆盖) Buffer.from(arrayBuffer[, byteOffset[, length]]) 返回一个新建的与给定的 ArrayBuffer 共享同一内存的 Buffer。 Buffer.from(buffer) 复制传入的 Buffer 实例的数据,并返回一个新的 Buffer 实例 Buffer.from(string[, encoding]) 返回一个被 string 的值初始化的新的 Buffer 实例 // 创建一个包含 Latin-1 字节 [0x74, 0xe9, 0x73, 0x74] 的 Buffer。 const buf6 = Buffer.from('tést', 'latin1'); buf.write(string[, offset[, length]][, encoding]) //写入缓冲区,返回实际写入的大小 buf = Buffer.alloc(256); len = buf.write("www.runoob.com"); console.log("写入字节数 : "+ len); //14 buf.toString([encoding[, start[, end]]]) //从缓冲区读取数据 console.log( buf.toString('utf8',0,5)); // 使用 'utf8' 编码, 并输出: abcde buf.toJSON(); //Buffer 转换为 JSON 对象 JSON.stringify(buf); var buffer1 = Buffer.from(('菜鸟教程')); //缓冲区合并 var buffer2 = Buffer.from(('www.runoob.com')); var buffer3 = Buffer.concat([buffer1,buffer2]); console.log("buffer3 内容: " + buffer3.toString()); ---------------------------------------------------------------------流 //读 var fs = require("fs"); var data = ''; var readerStream = fs.createReadStream('input.txt'); readerStream.setEncoding('UTF8'); readerStream.on('data', function(chunk) { data += chunk; }); readerStream.on('end',function(){ console.log(data); }); readerStream.on('error', function(err){ console.log(err.stack); }); //写 var data = '菜鸟教程官网地址:www.runoob.com'; var writerStream = fs.createWriteStream('output.txt'); writerStream.write(data,'UTF8'); writerStream.end(); writerStream.on('finish', function() { console.log("写入完成。"); }); writerStream.on('error', function(err){ console.log(err.stack); }); console.log("程序执行完毕"); ---------------------------------------------------------------------模块