什么是Node.js
Node.js是基于Chrome V8引擎的JavaScript语音运行环境。
Node.js可以说的对JavaScript的扩展,使js可以操作文件和数据库。
Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。(阻塞式的I/O模型:异步的输入输出,比如: 文件操作、数据库操作 等)。
Node.js模块化的问题
Node.js采用了common.js规范
内置模块->可以直接使用
第三方模块->Node.js没有的,类似于插件,需要下载
自定义模块
模块化解决的问题:使js可以引入其他的文件。
Node.js的模块的使用
声明对象引入模块比如const http=require("http/模块名")。
使用第三方模块
npm install "模块名" -D(开发环境)/-S(生产环境)。
第三方模块的使用:先在npmjs.com查阅api,写单案例测试。
自定义模块
先定义模块,模块可以是对象,字符串,函数,然后通过module.exprots=(对象,字符,函数的名字)。导出模块。
引入模块const 变量名=require("模块的相对路径")
自定义模块的上传
-创建文件夹(注意不要重名,可以在npmjs.com网站上查看是否重名)。
-通过npm init 一直回车/npm init -y生成package.json文件。
-创建index.js文件,里面封装模块
-创建npmjs账号,保证当前使用的源是npm源,可通过npm ls查看使用源以及npm use npm切换源。
-登录npm账号 npm adduser
-上传 npm publish
内置模块
http:处理与服务器相关的一些功能
http.createServer((requset,reponse)=>{ reponse.write("需要发送的信息"); reponse.end(); }).listen(("端口","域名")=>{ consloe.log("服务器运行在:","http://"域名":"端口""); })url:解析处理url地址。
url.parse("url地址");//将url地址转成一个对象。fs:操作文件。
fs.readFileSync("文件的相对路径"); fs.readFile("文件的相对路径",(err,data)=>{ if(err){ console.log("读取失败了"); }else{ console.log(data) } });//err:错误信息,data:读取的文档内容。注:读取的内容是二进制格式,需要对读取出来的数据使用toString方法,或传递一个字符编码作为参数utf8。querystring:对url地址?后面的查找字符串进行处理。一般和url一起配合使用
querystring.parse(url.poarse("url地址").query,"&,"=");//结果是将查找字符串用&和=分割成的对象path:操作绝对地址
path.resolve(__dirname,"aa")//在绝对地址后拼接上/aa,__dirname是Node.js的全局对象global下面的一个属性代表文件的绝对地址
第三方模块
request:用来获取接口地址的数据
request('接口地址', function (error, response, body) { console.log('error:', error); //错误信息 console.log('statusCode:', response && response.statusCode); //状态码 console.log('body:', body); //数据内容 });