node js基础入门
1.什么是nodejs
node.js是基于Chrome v8引擎的javascript 运行时(运行环境) node.js的规范:commonjs规范
2.如何进入node.js(两种方式)
1.js文件方式:通过 js文件的方式(浏览器f12) 2.交互式:(node+文件名) 3.退出:exit
3.什么是模块化?
1.一个js文件就是一个模块 2.每个模块都是一个独立的作用域,在这个文件中定义的变量、函数、对象都是私有的,对其他文件不可见。 作用:1.能够复用 2.防止命名冲突
4.如何导入和导出
导入:require 导出:module.exports
5.模块化的分类(3种)
内置模块:由node本身提供,不需要单独安装(npm),直接require(引入)即可 自定义模块:由我们自己创建,比如tools.js/user.js 第三方模块:由社区或者个人提供,需要npm安装
【5-1】内置模块:
核心模块(先引入在使用): fs:文件操作模块, http:网络操作模块 url:解析地址模块 path:路径操作模块 querystring:解析参数字符串的模块
【5-2】自定义模块:
由开发人员创建的模块(js文件) 1.基本使用: 【1-1】创建模块 【1-2】引入模块 注意:自定义模块的路径必须以./获取../开头 2.加载模块 【2-1】require('./a') // 推荐使用,省略.js后缀! 【2-2】require('./a.js')
【5-3】第三方模块:
【3-1】由社区或个人提供的 【3-2】比如chalk(是一款改变运行环境时改变代码颜色的第三方模块)
6.创建http服务器
http.createserver((req,res))=>{ //http状态值:200 //内容的类型(响应头,解决中文编码问题) response.writeHead(200,{"content-type":text/html;charset:utf-8"}) res.send("创建服务器成功") }).listen(3000) 1.require函数用来获取node.js提供的模块; 2.request参数是客户端发来的信息; 3.response参数是服务器即将发送至客户端的消息; 4.端口设为3000 5.接着浏览器 输入127.0.0.1:3000 || localhost:3000即可访问当前的http服务,返回值是"创建服务器成功"
7.有关URL的解释
http://localhost:3000/user?name="李四"&password =123456 【http://localhost:3000是服务器部分,user?name="李四"&password =123456是客户端请求的参数】 //引入http模块 const http = require('http'); //引入URL地址 const url = require('url'); //创建服务器 http.createServer((req, res)=>{ //内容的类型(响应头,解决中文编码问题) res.writeHead(200, {'Content-Type': 'text/plain'}); // 解析url参数 var params = url.parse(req.url, true).query; res.write("名字::" + params.name); res.write("\n"); res.write("密码:" + params.city); res.end(); }).listen(3000); //查看参数 location.pathname()
8.关于node.js的结构方式引入
//结构的方式将文件引入 var {a,b}=require("文件") //将a的名字改为aaa,并将此进行解构赋值 var({a:aaa,b})=require("文件名)
9.关于对象的浅拷贝
es6: var obj2 = {...obj} es5:将此对象 给到一个新对象 var obj2 = Object.assign({},obj)
10.关于node的操作命令
【10-1】.找回删除的node-module文件 1.会产生package.json包管理工具 npm init -y 2.根据package.json里的依赖重新下载 npm i或者yarn命令 3.找回node-module文件
11.文件操作模块
同步:sync 异步:async 流:stream 同步: const fs = require("fs") //追加文件,不覆盖 var str1 = fs..appendFileSync("文件路径",'追加内容',"utf-8") //读取文件 var str2 = fs.readFileSync("./a.txt","utf-8") //写入路径覆盖 var str3 = fs.writeFileSync("./a.txt","替换内容","utf-8") 异步: const fs =require("fs") fs.readFile("文件路径","utf-8",(err,data)=>{ if(!err){ console.log(data) } }) fs.writeFile("文件路径","utf-8",(err,data)=>{ if(!err){ console.log(data) } }) 流: var fs = fs.createReadstream("./a.txt") var str="" rs.on("data",(thunk)=>{ str+=thunk }) rs.on("end",()=>{ console.log(str) }) 流的拷贝: const fs = require('fs') var rs=fs.createReadStream("./a.txt") var ws=fs.createWriteStream("./b.txt") rs.pipe(ws)
(以下内容可参考npm说明文档)
1.引入 const cheerio = require('cheerio') 方法1: //解析字符串数据 cheerio.load() //防止文字乱码 res.setEnnding('utf-8') 2.当前文件的文件名: __firname 【join相当于当前文件目录加上了HTmL(前+后)拼接】 var url = path.join(__firname,'/one.html') console.log(url)//绝对路径 3.当前模块的目录名: __dirname 【resolve相对路径转绝对路径(类似于CD命令)】 var url1 = path.resolve(__dirname,'..',"/kt.txt") console.log(url1) 4.取得当前文件扩展名 var path=require('path'); /*nodejs自带的模块*/ var extname=path.extname("123.html");//获取文件的后缀名 console.log(extname)
来源:https://www.cnblogs.com/cc0419/p/12109456.html