node.js
nodeJs什么?
NodeJS 其实就是一个js的运行环境 属于后端的语言 JS在服务器上运行。
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
nodeJs使用了一个事件驱动 以及非阻塞的I/O式模式 使其轻量又高效
node中的npm包是全球最大的包(垃圾)网站 (只要你安装了node 那么npm就会自动安装上)
以前的JS运行环境
浏览器 脚本引擎
V8引擎
浏览引擎 2部分
1、脚本引擎 渲染脚本 JS V8引擎
2、渲染引擎 渲染页面
nodeJs与普通的JS有什么区别?
node不需要浏览运行 nodeJS可以调用底层的API 例如文件的读写 服务器的创建 ....
nodeJS中没有DOM和BOM的概念
普通的JS只能靠浏览器运行 不能够进行文件的读写
nodeJS的好处是什么?
优点:高效 速度快 适合做高并发的项目 通常是指,通过设计保证系统能够同时并处理很多请求。通常来说,当多个用户去连接同一台服务器的时候,用户进入服务器的人数是固定的,而node就是处理客户端连接服务端人数固定的问题。
缺点:不适用于做大量计算的项目
工作当中:中间层的应用,客户端和服务器之间搭建的桥梁。
node版本:
LTS 稳定版本
CURRENT 测试版本
node的基本使用
window+r
查看node是否安装成功: node -v
node也可以做基本运算操作:
1、node 回车 然后写代码。
2、退出 ctrl+d 或者 ctrl+c 2次
3、cls清屏
npm是什么东西?
1、npm 是一个网站
2、npm 是一个包管理工具
包管理器:对所有node的包进行安装 删除 更新 卸载 等等操作
3、npm 是一条命令
目前所学到的模块化方法有哪些?
1、 模块化的规范
2、 如何定义模块 如果导出模块
AMD 依赖前置 CMD 依赖就近
requireJS seaJs es6 Module commonJS
前端 前端 前端 后端 node
导出 : define export module.exports
export default require
导入: require import
3、 模块化的好处?
1、高内聚 低耦合
2、解决命名冲突的问题
3、代码的复用
4、便于维护
4、 node中的模块会分为哪几种?
1、核心模块 核心模块直接书写依赖的名称即可
2、自定义模块 需要通过module.exports 导出 require进行导入 导入的时候必须写路径
moduleA:
module.exports = {
a,
b,
fn
}
moduleB:
const model = require("./moduleB");
const http = require("http");
console.log(model.a)
console.log(model.b)
console.log(model.fn)
3、第三方模块 需要通过cnpm install 下载 然后在通过require进行引入
node创建服务器
//导入核心模块
const http = require("http");
//创建服务器
http.createServer((req,res)=>{
/*
req:request 请求
res:response 响应
ajax({
type:"",
url:"",
data:{},
header:{
content-type:"application/x-www-form-urlencoded";
}
})
http https 报文
req 方法
req.headers
req.url 请求的路经
req.method 请求的方式 get post
res 方法
res.statusCode() 设置状态码
res.write() 响应 write:write 可以多次响应(打电话的过程) 返回字符串
res.end() 最后的响应 end: write+end 只能结束时一次响应(打电话结束时) 返回字符串
res.setHeader() 设置响应内容的格式
第一个值是 content-type
第二个值是内容格式
res.writeHead() 设置响应的状态码 以及响应内容的格式 其实这个方法是 statusCode 与 setHeader的综合写法
参数1:状态码
参数2:对象
"key":"val"
"Content-Typ" : "响应内容的格式"
*/
// res.statusCode = 200;
// res.setHeader("Content-type","text/plain;charset=utf8");
console.log(req.url);
console.log(req.method);
res.writeHead(300,{"Content-type":"text/html;charset=utf8"});
res.write("123");
res.end("你好");
}).listen(9000);
console.log("http://localhost:9000");
响应内容的格式
text/plain 文本
text/html html文件
text/css css文件
application/x-javascript js文件
application/json json文件
application/json和application/x-www-form-urlencoded都是表单数据发送时的编码类型。
node如何运行文件
node 文件名称
1、安装node
2、看http https 报文
3、node的http模块 书写一个服务器