Node.js简介
- Node.js是一个能够在服务器端运行JavaScript的开源代码、跨平台JavaScript运行环境
- Node采用Google开发的V8引擎运行js代码,使用事件驱动、非阻塞和异步I/O模型等技术来提高性能,可优化应用程序的传输量和规模
- Node大部分基本模块都用JavaSprit编写。在Node出现之前JS通常作为客户端程序设计语言使用,以JS写出的程序通常在用户的浏览器上运行
安装Node环境
- 查看当前Node环境版本号
- node --version
- 下载:https://nodejs.org/en/download/
- 安装
- next
- 安装过的重新安装就会升级
- 确认Node环境变量是否安装成功
- 在node安装目录下cmd执行node --version或者node -v
- 环境变量
执行js代码
- 编写js代码
- 打开终端,定位到脚本文件所属的目录
- 输入node 文件名执行对应的文件
- 【注意】文件名不要使用node.js执行对应的文件
- 在Node中,采用EcmaScript进行编码,没有BOM\DOM
读写文件
//fs是file-system的简写,就是文件系统的意思
//在Node中如果想要进行文件操作,就必须引入fs这个核心模块
//在fs这个核心模块中,就提供了所有的文件操作相关的API
//例如:fs。readFile就是用来读取文件的
//1.使用require方法加载fs模块
var fs=require("fs");
//2.读取文件
// 第一个参数就是要读取的文件路径
// 第二个参数是一个回调函数
// error
// 如果读取失败,error就是错误对象
// 如果读取成功。error就是null
// data
// 如果读取失败,data就是错误对象
// 如果读取成功,data就是读取到的数据
fs.readFile("./Node.js简介.md", function(error, data) {
//
// 不是0 1 是因为二进制转换为16进制
// 文件中存储的都是二进制数据
// 可以通过toString()方法转换为我们可以看懂的
console.log(data.toString());
//通过判断error来判断有没有错误发生
if (error) {
console.log("有错误发生");
} else {
console.log(data.toString());
}
})
写文件
//1.使用require方法加载fs模块
var fs=require("fs");
//第一个参数:文件路径
//第二个参数:文件内容
//第三个参数:回调函数
// erroe
// 成功:文件写入成功、error是null
// 失败:文件写入失败、error是错误对象
fs.writeFile('./helle')
node创建服务器
// 1.加载http核心模块
var http = require('http');
// 2.使用http.createServer()方法创建一个WEB 服务器
// 返回一个Server实例
var server = http.createServer();
// 3.服务器
// 发请求 接受请求 处理请求 发送响应
// 注册request 请求事件
// 当客户端请求过来,就会自动触发服务器的request请求事件,然后执行第二个参数:回调函数
server.on('request', function(request, response) {
// request 请求事件处理函数,需要接受两个参数
// Request请求对象
// 请求对象可以用来获取客户端的一些请求信息,例如请求路径
// Response 相应对象
// 响应对象可以用来给客户端发送响应消息
console.log('收到客户请求,请求路径是:' + request.url);
// response对象有一个方法:write可以用来给客户端发送响应数据
// write可以使用多次,但是最后一定要用end来结束响应,否则客户端会一直等待
// response.write("hello")
// response.write(" world")
// 结束响应并且给客户端发送响应
response.end('hello world');
})
// 4.绑定端口号,启动服务器
server.listen(3000, function() {
console.log("服务器启动成功");
});
Node中的JavaScript
EcmaScript
- 没有DOM\BOM
核心模块
在Node中为JavaScript提供了很多服务器级别的API,这些API绝大多数都被包装到了一个具名的核心模块中了。例如文件操作的fs核心模块,http服务构建的http模块,path路径操作模块,os操作系统信息模块
//require用来加载核心模块 var fs=require('fs');
第三方模块
用户自定义模块
//require 方法的作用 // 1.加载文件模块并执行里面的代码 // 2.拿到被加载文件模块导出的接口对象 // 每个文件模块中都提供一个对象exports // exports默认是一个空对象 // 需要把所有需要被外部访问的成员添加到这个对象中
Web服务器开发
- ip地址和端口号
- ip地址用来定位计算机
- 端口号用来定位具体的应用程序
- 一切需要联网通信的软件都会占用一个端口号
- 端口号的范围从0-65536之间
- 计算机中有一些默认端口号,最好不要去使用
- 例如http服务的80
- ip地址和端口号