node.js: 基于Chrome V8引擎的JavaScript运行环境,让其运行在服务端的开发平台。自身提供了基本模块,也可通npm自行下载模块 特点:快、耗内存多。没有浏览器安全级别限制进行解析js代码、提供很多系统级别的api 框架的选择: 比较热门的包括: Express(Sails),koa,Hapi Express:完善、稳定、文档全、社区大 koa :超前(koa2) Hapi:复杂(一个简单的helloworld都要做很多堆砌),适合复杂的大型项目 egg(阿里巴巴团队刚推出的) Node.js的安装版本: Node.js版本: LTS(长时间支持版本——-推荐) Current(最新版本,有些api会有变动) 在node环境下执行js文件:终端进入文件所在目录,在终端中输入 node 文件名 node.js模块开发规范 自定义模块 var obj = {这里可以写函数,写对象} module.exports = obj 加载自定义模块 var obj = require('自定义的文件的名称') 例:文件名称为01.js let a = { username:'aaa', log:function(){ console.log('hello world') } } // 暴露 模块 a 对象 module.exports = a;
在文件名称02.js中引用 // 获取到了 01.js 暴露的模块 let box = require('./01') // 目录 模块 let bxios = require('./bxios') console.log(box.username) box.log() bxios() console.log(222) console.log(333) 在整个目录暴露时,只读取文件名为index.js这一个文件 安装好之后进入方法 window+r 或者在想打开的文件的地址栏输入cmd。或者在vscode的文件里选择在终端中打开。或者在开始菜单搜索cmd(该方式可以用管理员方式运行) 这样就可以使用npm的命令 1.npm -v :查看npm安装的版本 2.npm init:会引导你创建一个package.json文件,包括名称、版本、作者等信息。 使用npm init-y 可以跳过很多回车步骤 3.npm list:查看当前目录下已安装的node包 (简写:npm ls) 4.npm install moduleNames:安装nde模块到本地目录node_modules下 5.npm install <name> -g 将包安装到全局环境(install可以简写为i) 6.npm install<name>--save 将包安装的同时,将信息写入package.json中; 7.npm uninstall moudleName:卸载node模块 nrm 源管理器 在node界面中输入 npm config set registry https://registry.npm.taobao.org 即可将npm源修改成淘宝的源(服务器) 安装nrm,可将其安装到全局 指令npm i nrm -g 执行命令nrm ls 查看可选的源。当前源上有*符号 执行命令nrm use (taobao)源名,可切换所使用的源 nodemon:自动重启应用,并执行修改后的代码。 安装:npm i nodemon -g 使用:nodemon 文件名(不加文件名默认打开index.js) Nodejs内置模块http 解析http协议,可以用来搭建服务器 // 加载了内置模块 http 解析http协议 let http = require('http'); // console.log(http)
首先是解析http 然后通过http.createServer((req,res)=>这里是服务器收到的客户端的请求) 其次 server.listen(端口号,地址,回调函数)用来监听服务器是否启动成功 nodejs的api url url.parse('接口地址'),查询url的信息将字符串转为对象 url.format(),将url对象转为url字符串 例 let url = require('url'); // /ap/login.html?usename=aa&password let urlStr = 'https://sub.:8080/login?username=1212&password=222' let obj = url.parse(urlStr)//url字符串 转为 对象 console.log(obj.pathname)//接口 console.log(obj.query)// username=1212&password=222 console.log(obj.search)// ?username=1212&password=222 // url对象转为 url字符串 let str = url.format(obj) console.log(str)
Query String:用于实现url参数字符串与参数对象的相互转换。 例: let qs = require('querystring') // URL字符串转为js中对象 let obj = qs.parse('username=zhangsan&password=123') //{ username: 'zhangsan', password: '123' } console.log(obj) let obj2 = { username: 'zhangsan', password: '123' } //username=zhangsan&password=123 let str = qs.stringify(obj2) console.log(str)
Path path模块提供了用于处理文件路径的工具 path.normalize()//正常化路径 path.join()//链接路径 path.resolve()//转化为绝对路径 path.extname()//获取当前路径下文件名的后缀 例:let path = require('path') // 正常化路径 console.log(path.normalize('/ap/aa/..')) // 链接路径 \ap\admin\index.html console.log(path.join('/ap','admin','index.html')) //转化为绝对路径 D:\教学\zz2003\DAY16\代码\06.path.js console.log(path.resolve('06.path.js')) // 获取url中的后缀 .html console.log(path.extname('http://aaaadfadf/login.html')) console.log(path.extname('/zxx.jpg'))
File System--node操作文件 用require('fs')来表示 1)stat() 获取文件的一些信息 2)mkdir() 新增目录的 3)writeFile(url,con,fc) 书写文件 4)appendFile(url,con,fc) 追加文件内容 5)读取文件的内容:readFile(url,fc) 6)列出目录的东西:readdir 7)重命名目录或文件:rename 8)删除目录与文件:rmdir(目录),unlink(文件) readdirSync(src) 同步读取目录信息 例:// fs // 处理电脑的文件的 // fs 里的方法基本都是异步,也有同步 let fs = require('fs'); // 错误优先 fs.stat('06-path.js',function(err,data){ // 回调函数的第一个参数 一般都是err 错误,操作成功err是null,操作失败err就有错误信息了 if(!err){ console.log('读取成功') // console.log(data) } else{ console.log('读取失败',err) } }) console.log(2222) // async 异步 // sync 同步 let res = fs.statSync('06-path.js'); // console.log(res) // 创建目录 fs.mkdir('./js',function(err,data){ if(err){ console.log(err) return } console.log('创建成功') }) // 创建文件,并写入内容 // fs.writeFile('./js/index.js','console.log("hello nodejs")',function(err){ // if(err){ // console.log('创建失败') // }else{ // console.log('创建成功') // } // }) // 文件追加内容 // fs.appendFile('./js/index.js','\n var a= 1;',function(){ // console.log('appendFile') // }) // 读取文件内容 // fs.readFile('./js/index.js',function(err,data){ // console.log(data.toString()) // }) // 读取文件夹 [ 'a.js', 'index.js' ] // fs.readdir('./js',function(err,data){ // console.log(data) // }) // 重命名 // fs.rename('./js/a.js','./js/b.js',function(err,data){ // console.log(err) // }) // 删除文件 // fs.unlink('./js/b.js',function(err){ // console.log(err) // }) // fs.unlinkSync // 删除目录 // fs.rmdir('./js',function(err){ // console.log(err) // }) // fs.rmdirSync
|
|
来自: 昵称70680357 > 《待分类》