1、Node.js是什么?
- 首先Node.js不是一门语言,不是库,不是框架,它是一个javaScript运行时环境,简单来讲就是Node.js可以解析和执行javaScript代码,以前只有浏览器可以解析javaScript代码,也就是说现在的javaScript可以完全脱离浏览器来运行,一切归功于Node.js
- 浏览器中的javaScript包含EcmaScript(基本语法、if 、var 、function 、Object 、Array ) 、BOM 、DOM
- Node.js中的javaScript :没有BOM和DOM、有EcmaScript语法,在Node这个JavaScript执行环境中为JavaScript提供了一些服务级别的操作API(文件读写、网络服务的构建、网络通信、http服务器等)
- Node.js的特性(event-driven事件驱动、non-blocking I/O model非阻塞IO模型、lightweight and effclient轻量级和高效、)
- Node.js自带的npm是世界上最大的开源库生态系统。npm上绝大多数javaScript相关的包都存放在了npm上,这样做的目的是为了让开发人员更方便的使用。
2、Node.js能做什么?
- Web服务器后台(游戏服务器、接口服务器)
- 命令行工具
- npm (node)
- git (c语言)
- hexo (node)
- 对于前端开发者来说,接触最多的是他的命令行工具
- 自己写的很少,主要使用别人第三方的
- webpack
- gulp
- npm
3、Node.js安装
3.1、文件读取
var fs = require('fs')
fs.readFile('./data.txt',function(error,data){
console.log(data)
})
- 效果:返回一串 <Buffer 68 65 6c 6c 6f 20 6e 6f 64 65 0d 0a e4 bd a0 e5 a5 bd 20 4e 6f 64 65 2e 6a 73> ,因为文件中存储的其实都是二进制数据0 1,这里二进制自动转为16进制。可以利用toString()方法转为我们认识的字符。
3.2、文件写入
var fs = require('fs')
fs.writeFile('./你好.md','大家好,好积极把',function(error){
console.log('文件写入成功')
})
3.3、简单的http服务
var http = require('http')
var server = http.createServer()
server.on('request',function(){
console.log('收到客户端的请求')
})
server.listen(3000,function(){
console.log('服务器启动成功,可以通过http://127.0.0.1:3000/来进行访问')
})
- 效果
- 发送响应,修改上面的js文件,添加以下内容
server.on('request',function(request,response){
console.log('收到客户端的请求' + request.url)
response.write('hello')
response.write( 'nodejs')
response.end()
})
- 效果
- 思考:如何根据URL的不同,响应不同的内容。
var http = require('http')
var server = http.createServer()
server.on('request' , function(req , res){
console.log('收到请求了 , 请求路径是:' + req.url)
var url = req.url
if(url === '/'){