Node.js开发概述

Node开发概述

1.3为什么选择Node

使用JavaScript语法开发后端应用

一些公司要求前端工程师掌握Node开发

生态系统活跃,有大量开源库可以使用

1.4Node是什么

node是一个基于Chrome V8引擎的javaScript代码运行环境

2.3PATH环境变量

存储系统中的目录,在命令行中执行命令的时候系统会自动去这些目录中查找命令的位置

3.Node.js快速入门

3.1Node.js的组成

3.2Node.js基础语法

命令行窗口快捷键:shift+鼠标右键

cd…/ :上一级目录

cd :进入该级目录

4.Node.js模块化开发

1.1 JavaScript开发弊端

JavaScript在使用时存在两大问题,文件依赖和命名冲突。

1.2生活中的模块化开发

1.3软件中的模块化开发

一个功能就是一个模块,多个模块可以组成完整应用,抽离一个模块不会影响其他功能的运行。

1.4Node.js中模块化开发规范

node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到

模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块。

1.7模块成员导出的另一种方式

exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准

3.1什么是系统模块

node运行环境提供的API,因为这些ApI都是以模块化的方式进行开发的,所以我们又称Node

3.2系统模块fs文件操作

f:file文件 s:system系统,文件操作系统

const fs = require('fs');

读取文件内容

fs.reaFile('文件路径/文件名称'[,'文件编码'],callback);

读取文件语法实例:

//1。通过模块的名字fs对模块进行引用
const fs = require('fs');

//2.通过模块内部的readFile读取文件内容
fs.readFile('./helloworld.js','utf8',(err,doc) => {
    //如果文件读取出错err 是一个对象 包含错误信息
    //如果文件读取正确err 是null
    //doc是文件读取的结果

    console.log(err);
    console.log(doc);
});


3.3系统模块fs文件操作

写入文件内容

fs.writeFile('文件路径/文件名称','数据',callback);
const fs = require('fs');

fs.writeFile('./demo.txt','即将要写入的内容',err => {
    if (err!=null){
        console.log(err);
        return;
    }
        console.log('文件内容写入成功')
})

3.4系统模块path路径操作

为什么要进行路径拼接

不同操作系统的路径分隔符不统一

/public/uploads/avatar

windows上是 \ /

Linux 上是 /

3.5相对路径VS绝对路径

大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录

在读取文件或者设置文件路径时都会选择绝对路径

使用__dirname获取当前文件所在的绝对路径

4.第三方模块

4.1

4.2获取第三方模块(别人写好的、具有特定功能的、我们能直接使用的模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包)

npm(node package manager):node的第三方模块管理工具

下载:npm install模块名称

卸载 :npm unintall package模块名称

全局安装与本地安装

命令行工具:全局安装

库文件:本地安装

5.第三方模块nodemon

nodeman是一个命令行工具,用以辅助项目开发

在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐

使用步骤

1.使用npm install nodemon -g下载它

6.第三方模块nrm

nrm(npm registry manager):npm下载地址切换工具

npm默认的下载地址在国外,国内下载速度慢

使用步骤

1.使用npm install nrm -g下载它

2.查询可用下载地址列表nrm ls

3.切换npm下载地址nrm use下载地址名称

7.第三方模块Gulp

基于node平台开发的前端构建工具

将机械化操作编写成任务,想要执行机械化操作时执行的一个命令行命令任务就能自动执行了

7.1Gulp能做什么

项目上线,HTML、CSS、JS文件压缩合并

语法转换(es6、less…)

公共文件抽离

修改文件浏览器自动刷新

7.2Gulp使用

1.使用npm install gulp下载gulp库文件

2.在项目根目录下建立gulpfile.js文件

3.重构项目的文件夹结构src目录放置源代码文件dist目录放置构建后文件

4.在gulpfile.js文件中编写任务

5.在命令行工具中执行gulp任务

7.3Gulp中提供的方法

gulp.src():获取任务要处理的文件

gulp.dest():输出文件

gulp.task():建立gulp任务

gulp.watch():监控文件的变化

7.4Gulp插件

gulp-htmlmin: html文件压缩

gulp-csso :压缩css

gulp-bable:javaScript语法转化

gulp-less: less语法转化

gulp-uglify:压缩混淆JavaScript

gulp-file-include:公共文件包含

browsersync:浏览器实时同步

8.package.json文件

8.1 node_modules文件夹的问题

1.文件夹以及文件过多过碎,当我们将项目整体拷贝给别人的时候,传输速度会很慢。

2.复杂的模块依赖关系需要被记录下来,确保模块的版本和当前保持一致,否则会导致当前项目运行报错

9.服务器端基础概念

9.1 url

统一资源定位符,又叫URL(Uniform Resource Locator),是专为标识Internet网上资源位置而设立的一种编址方式,我们平时所说的网页地址指的是即是URL。

9.2URL的组成

传输协议://服务器IP或域名:端口/资源所在位置标识

http://www.itcast.cn/news/20181018/09152238514.html

http:超文本传输协议,提供了一种发布和接收HTML页面的方法

9.3开发过程中客户端和服务器端说明
9.4创建web服务器
//引用系统模块
const http = require('http');
//创建web服务器
const app = http.createServer();
//当客户端发送请求的时候
app.on('request',(req,res) =>{
//响应
res.end('<h1>hi,user</h1>');
});
//监听3000端口
app.listen(3000);
console.log('服务器已启动,监听3000端口,请访问localhost:3000')

9.5HTTP协议

1.HTTP协议的概念

超文本传输协议(Hyper Text Transfer Protocol,缩写:HTTP)规定了如何从网站服务器传输超文本到本地浏览器,它基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ollgamMb-1657702413718)(D:\appfiles\Typora\image-20220428112438075.png)]

2.报文

在HTTP请求和响应的过程中传递的数据块就叫报文,包括要传送的数据和一些附加信息,并且要遵守规定好的格式。(冒号分割的键值对)

3.请求报文

1.请求方式(Request Method)

GET 请求数据

POST 发送数据

2.请求地址(RequestURL)

app.on('request',(req,res)=>{

	req.headers//获取请求报文
	req.url//获取请求地址
	req.method//获取请求方法
});

3.响应报文

1.HTTP状态码

200请求成功

404请求的资源没有被找到

500服务器端错误

400客户端请求有语法错误

2.内容类型

text/html

text/css

application/javascript

image/jpeg

application/json

4.请求参数

客户端向服务端发送请求时,有时需要携带一些客户信息,客户信息需要通过请求参数的形式传递到服务器端,比如登录操作。

4.1get请求参数

参数被放置在浏览器地址栏中,例如:http://localhost:3000/?name=zhangsan&age=20

猜你喜欢

转载自blog.csdn.net/weixin_45936141/article/details/125767729