这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
Node.js简介
1.什么是Node.js?
Node.js是一个基于Chrome V8引擎的JS运行环境
2.Node.js中的JS运行环境
- V8引擎和内置API函数
- 浏览器是JS的前端运行环境
- Node.js是Js的后端运行环境
- Node.js中无法调用DOM和BOM等浏览器内置API
Nodejs模块化
1.内置模块 nodejs官方提供
2.自定义模块 用户创建的.js文件
3.第三方模块 使用前需下载,第三方开发的模块
模块作用域
在自定义模块定义的变量、方法等成员,只能在当前模块被访问,
优点: 防止全局变量污染问题
模块化规范
1.nodejs遵循CommonJS模块化规范 CommonJS规定了模块的特性和各模块间如何相互依赖
2.每个模块内部,module变量代表当前模块
3.module变量是一个对象,它的exports属性是对外的接口
4.加载某个模块是加载module.exports属性,require()方法用于加载模块
http模块
基础概念
什么是客户端,什么是服务器?
在网络节点中,负责消费资源的电脑,叫做客户端。 负责对外提供网络资源的电脑,叫做服务器。
Http模块是Node.js官方提供的,用来创建web服务器的模块。通过http模块提供的Http.createServer()方法,就能方便的把一台普通电脑,变成一台web服务器,从而对外提供Web资源服务。
//导入htpp模块
const http = require('http');
//创建web服务器
const server = http.createServer();
server.on('request',(request,response)=>{
response.setHeader('Content-Type','text/html; charset=utf-8')//定义请求头格式
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Headers", '*');
const url = request.url;//端口号默认为8000所以不显示
const method = request.method;
let str = `请求的url${url},请求的方法是${method}`;
// 调用 res.end() 方法,向客户端响应一些内容
response.end(str);
})
server.listen(8000,()=>{
console.log('listening on http://127.0.0.1:8000');
})
//自动重新启动服务器 npx nodemon inedx.js
读取和写入文件
const fs = require('fs');
const path = require('path');//使用path路径拼接来获取当前路径
const pathStr = path.join(__dirname,'/files/file1.txt')
const getPath = path.basename(pathStr);//使用path中的basename方法获取路径中的文件名
console.log(getPath)//输出file1.txt
let getPathWithoutTxt = path.basename(pathStr,'.txt');//第二个参数可以删去文件的扩展名只获得文件的名称
console.log(getPathWithoutTxt);//输出file1
console.log(path.extname(pathStr))//输出.txt 获取文件的扩展名
fs.readFile(pathStr,'utf-8',function(err,dataString){//如果没有标明utf-8格式·,在打印dataString的时候应该用toString()方法转为字符串,否则会出现乱码
if(err){
return console.log('文件读取失败' + err.message);
}
console.log('文件读取成功' +'\t' +dataString);
const arrOld = dataString.split(' ')//dataString.tostring().split('');
const array = [];
arrOld.forEach(item=>{
array.push(item.replace('=',':'));
})
const newStr = array.join('\r\n');
console.log(newStr);
fs.writeFile(__dirname + '/files/writeFiles.txt',newStr,function(err){
if(err){
console.log('文件写入失败'+ err.message);
}
console.log('读取成功');
})
})
console.log(__dirname)
Express框架 简介
什么是 Express
官方给出的概念:Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。
通俗的理解:Express 的作用和 Node.js 内置的 http 模块类似,是专门用来创建 Web 服务器的。
Express 的本质:就是一个 npm 上的第三方包,提供了快速创建 Web 服务器的便捷方法。
Express 的中文官网: www.expressjs.com.cn/
Express 能做什么
对于前端程序员来说,最常见的两种服务器,分别是:
Web 网站服务器:专门对外提供 Web 网页资源的服务器。API 接口服务器:专门对外提供 API 接口的服务器。
使用 Express,我们可以方便、快速的创建 Web 网站的服务器或 API 接口的服务器