概念:
1、能够运行javascript的服务器
2、用javascript语言编写的后端
3、强大的包管理器npm,可以安装依赖插件
->特性: 1).事件驱动 2).非阻塞I/O模型 3).轻量高效node.js使用场景(实时聊天、电子商务) 1).高并发/低业务的网络请求2).实时应用 node.js安装和使用 1.官网:参考网站:http://nodejs.cn/ 1).初始化项目 npm init (V8.1版本的需要跳过配置npm init -y) 2).添加依赖 npm install packageName --save-dev 3).也可以根据package.json中已经设置好的依赖名字,做全部安装. npm installnode.js编程基础
1.模块 ->使用一个npm安装模块,例如gulp 1).main.js中直接用require来注入. require()会在node_modules这个文件夹里去找. 2).如果是自定义的模块index.js,则需要按照相对路径来写. 3).导入时可以省略 .js 后缀 ->自定义模块 要想把模块暴露出来,需要用关键字exports来暴露API index.js 想让它暴露出来一个API exports.goodTeacher = function(){ console.log('MR.Wang is a best teacher of the world!'); } 2.node.js的文件系统(fs),是一个系统的依赖. 1.导入文件系统fs依赖 var fs = require('fs'); 2.读取 // 同步读取 var data = fs.readFileSync('data.txt'); // 打印出来,原生是buffer数据,需要转码 console.log(data.toString()); console.log('结束'); 3.node.js的回调函数 ->node.js的异步编程的直接体现就是回调函数. // 异步读取 // 异步读取 var time = new Date(); fs.readFile('data.txt', function (err,data) { console.log(data.toString()); console.log('读取本地文件耗时:' + (new Date() - time)+'毫秒'); }); console.log('完毕'); 4.readFile()// 读取文件 ->fs.readFile(path,[option],callback) ->callback函数有两个参数function(err,data){} 1).err是读取文件失败后出发的错误对象 2).data是从文件中读取的数据.5.writeFile()// 写入文件
->fs.writeFile(path,data,[option],callback) var str = '此情此景,我想吟诗一首!' fs.writeFile('data1.txt', str, function (err) { if (err) { throw err; } console.log('写入成功!'); }); ->默认的第三个参数是{flag='w'},是写的操作.会清空掉文件.如果想要追加内容,可以设置{flag='a'} fs.writeFile('data1.txt', str,{flag:'a'}, function (err) { if (err) { throw err; } console.log('写入成功!'); }); ->{flag:'w'}为默认值,w代表写文件,a代表追加内容,r代表读取文件. 6.创建目录 fs.mkdir(path,[mode],callback)// 创建目录 ->path是需要创建的目录 ->[mode]是目录权限(默认0777) ->callback是回调函数 7.删除目录 fs.rmdir(path,callback);// 但是只能删除空目录 8.读取目录 fs.readdir(path,callback);// 读取文件目录 ->回调函数里有两个参数,function(err,files){} ->err表示读取失败触发的错误对象. ->files表示读取的文件目录,是一个数组.3.http模块
->提供web服务的一个模块,是系统内置的服务 ->手写一个http服务 ->引入http模块 var http = require('http'); ->创建一个服务 http.createServer(function(req,res){ res.writeHead(200,{'Content-Type':'text/html'}); res.write('<head><meta charset="utf-8"></head>')res.write('hello world');
res.end('goodBye');}).listen(8888);
console.log('sever success'); ->浏览器地址栏输入:localhost:8888或者127.0.0.1:8888 拓展: 服务端: ->服务器: 1).就是一台电脑,用来提供其他客户机的服务请求. 2).软件服务器:DNS服务器,Web服务器,数据库服务器,FTP服务器,SMTP/POP3服务器 ->服务器的操作系统 windows server/Linux(Ubuntu/centos/红旗/麒麟)/Unix ->服务器的服务环境: Apache/Tomcat/IIS LMAP(Linux+Apache+Mysql/MariaDB+Perl/PHP/Python)