使用JavaScript语法开发后端应用
一些公司要求前端工程师掌握Node开发
生态系统活跃,有大量开源库可以使用
node是一个基于Chrome V8引擎的javaScript代码运行环境
存储系统中的目录,在命令行中执行命令的时候系统会自动去这些目录中查找命令的位置
3.Node.js快速入门
3.1Node.js的组成
3.2Node.js基础语法
命令行窗口快捷键:shift+鼠标右键
cd…/ :上一级目录
cd :进入该级目录
JavaScript在使用时存在两大问题,文件依赖和命名冲突。
一个功能就是一个模块,多个模块可以组成完整应用,抽离一个模块不会影响其他功能的运行。
node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块。
exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准
node运行环境提供的API,因为这些ApI都是以模块化的方式进行开发的,所以我们又称Node
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);
});
写入文件内容
fs.writeFile('文件路径/文件名称','数据',callback);
const fs = require('fs');
fs.writeFile('./demo.txt','即将要写入的内容',err => {
if (err!=null){
console.log(err);
return;
}
console.log('文件内容写入成功')
})
为什么要进行路径拼接
不同操作系统的路径分隔符不统一
/public/uploads/avatar
windows上是 \ /
Linux 上是 /
大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录
在读取文件或者设置文件路径时都会选择绝对路径
使用__dirname获取当前文件所在的绝对路径
4.1
4.2获取第三方模块(别人写好的、具有特定功能的、我们能直接使用的模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包)
npm(node package manager):node的第三方模块管理工具
下载:npm install模块名称
卸载 :npm unintall package模块名称
全局安装与本地安装
命令行工具:全局安装
库文件:本地安装
nodeman是一个命令行工具,用以辅助项目开发
在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐
使用步骤
1.使用npm install nodemon -g下载它
nrm(npm registry manager):npm下载地址切换工具
npm默认的下载地址在国外,国内下载速度慢
使用步骤
1.使用npm install nrm -g下载它
2.查询可用下载地址列表nrm ls
3.切换npm下载地址nrm use下载地址名称
基于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.复杂的模块依赖关系需要被记录下来,确保模块的版本和当前保持一致,否则会导致当前项目运行报错
统一资源定位符,又叫URL(Uniform Resource Locator),是专为标识Internet网上资源位置而设立的一种编址方式,我们平时所说的网页地址指的是即是URL。
传输协议://服务器IP或域名:端口/资源所在位置标识
http://www.itcast.cn/news/20181018/09152238514.html
http:超文本传输协议,提供了一种发布和接收HTML页面的方法
//引用系统模块
const http = require('http');
//创建web服务器
const app = http.createServer();
//当客户端发送请求的时候
app.on('request',(req,res) =>{
//响应
res.end('hi,user
');
});
//监听3000端口
app.listen(3000);
console.log('服务器已启动,监听3000端口,请访问localhost:3000')
1.HTTP协议的概念
超文本传输协议(Hyper Text Transfer Protocol,缩写:HTTP)规定了如何从网站服务器传输超文本到本地浏览器,它基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准。
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.1get请求参数
参数被放置在浏览器地址栏中,例如:http://localhost:3000/?name=zhangsan&age=20