Node.js
学习目标
能够知道什么是node.js
能够知道node.js可以做什么
能够说出node.js中javascript的组成部分
能够使用path模块处理模块路径
能够使用http模块写一个基本的web服务器
01初始node.js是基于chrome v8引擎的javascript运行环境
什么是终端
专门为程序员开发而设计的 用于实现人机交互的一种方式
使用命令来交互
1.4在node.js环境中执行javascript代码
1打开终端
2输入node 要执行的文件路径 就可以执行.js文件
C:\Users\强天尊>node 1.js
hello word
C:\Users\强天尊>
终端快捷键
cd +文件路径可以切换到其他文件的所处路径
便捷快速进入文件所处的目录
在文件空白按住shift 鼠标右键 找到Windows PowerShell 就可以打开直接输入node 加文件名就可以运行js文件 这个属于新的终端 功能强大 比cmd更好
终端快捷键
1方向建里面的向上【 】可以快速定位到上一次执行吗,命令
2使用tab 可以快速补全 .\自己加上的不影响
PS C:\Users\强天尊> node .\1.js
hello word
3使用esc按键可以快速清空
4输入cls可以清空终端的所有内容
.help: 显示点命令的帮助。
.editor: 启用编辑器模式,可以轻松地编写多行 JavaScript 代码。当处于此模式时,按下 ctrl-D 可以运行编写的代码。
.break: 当输入多行的表达式时,输入 .break 命令可以中止进一步的输入。相当于按下 ctrl-C。
.clear: 将 REPL 上下文重置为空对象,并清除当前正在输入的任何多行的表达式。
.load: 加载 JavaScript 文件(相对于当前工作目录)。
.save: 将在 REPL 会话中输入的所有内容保存到文件(需指定文件名)。
.exit: 退出 REPL(相当于按下两次 ctrl-C)。
FS文件系统模块
Fs模块是node.js官方提供来满足用户对文件的操作
fs.read File()方法用来指读取定文件的内容
fs.writeFile()写入
导入模块
const fs=require(‘fs’)
2.2 读取指定文件内容
使用 fs.readFile()
语法格试 fs.readFile(path[,options],callback)
参数1 必选字符串表示文件的路径
参数2 可选 表示以什么拜尼马格式来读取文件
参数3 必选参数 文件读取完后 通过回调函数 拿去读取的结果
以utf8的编码格式 读取文件的内容
Const fs=require(‘fs’)
fs.readFile(‘./file/11.text’ , ’utf8’, function(err,dataStr){
Console.log(err) 失败
Consloe.log(‘-----’)
Console.log(dataStr) 成功
})
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
请求失败
PS C:\Users\强天尊\text> node .\使用readFile读取文件内容.js
[Error: ENOENT: no such file or directory, open 'C:\Users\强天尊\text\File\1.text'] {
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'C:\\Users\\强天尊\\text\\File\\1.text'
}
---
Undefined
请求成功
PS C:\Users\强天尊\text> node .\使用readFile读取文件内容.js
null
---
1234213
PS C:\Users\强天尊\text>
3判断文件是否读取成功
判断err对象是否为null 如果是其他的就失败
const fs = require('fs')
fs.readFile('./File/1.txt', 'utf8', function(err, dataStr) {
if (err) {
return console.log("读取文件失败" + RegExp.massage)
}
console.log('读取文件成功' + dataStr)
})
PS C:\Users\强天尊\text> node .\02判断文件是否读取成功.js
读取文件成功1234213
PS C:\Users\强天尊\text>
PS C:\Users\强天尊\text> node .\02判断文件是否读取成功.js
读取文件失败undefined
PS C:\Users\强天尊\text>
2.3向指定文件写入内容
1使用fs.writeFile()
语法格试 fs.readFile(file,data [,options],callback)
参数1 必选字符串表示文件的路径
参数2 必选表示写入内容
参数3 必选参数 内容格式
参数4 必选参数 文件读取完后 通过回调函数 拿去读取的结果
以utf8的编码格式 读取文件的内容
// 导入文件系统模块
const fs = require('fs')
// 调用fs.writeFile()
fs.writeFile('./File/2.txt', 'abcd', 'utf-8', function(err) {
console.log(err)
})
成功
PS C:\Users\强天尊\text> node .\03写入内容.js
null
PS C:\Users\强天尊\text>
判断文件是否写入成功
// 导入文件系统模块
const fs = require('fs')
// 调用fs.writeFile()
fs.writeFile('./File/2.txt', 'abcd', 'utf-8', function(err) {
if (err) {
return console.log("文件写入失败" + err.message)
}
console.log('写入成功')
})
练习 考试成绩整理
使用 fs文件系统模块,将素材目录下的成绩txt文件中考试数据整理到成绩 ok.txt文件中
整理数据 小红=99 小白=33 小李=45 小赵=78
整理后的数据
小红=99
小白=33
小李=45
小赵=78
核心实现步骤
1导入需要的fs文件系统模块
2使用fs.readFile()方法,读取素材目录下的文件
3判断文件是否读取成功
4文件读取成功后处理成绩数据
Path路径模块
1path.join()用来拼接一个完整的路径
2path.basename() 用于从路径中将文件名解析出来
先导入模块
const fs = require('path')
path.join([]) 里面可以传入多个路径
const pt = require('path')
const pathStr = pt.join('a', '/b/c', '../', './c')
console.log(pathStr)
PS C:\Users\强天尊\text> node .\path.js
a\b\c
PS C:\Users\强天尊\text>
三:Node.js的用途
1.Node.js最适合在流媒体应用程序中使用,还有一些聊天应用程序。
2.游戏服务器 - 需要一次处理数千个请求的快速和高性能服务器,这是一个理想的框架。
3.广告服务器 - 再次在这里你可以有数千个请求从中央服务器提取广告,Node.js可以是一个理想的框架来处理这个问题。
4.流服务器 - 使用Node的另一个理想方案是用于多媒体流服务器,其中客户端有请求从该服务器提取不同的多媒体内容。
以上就是对nodejs是做什么的?有哪些功能的全部介绍,如果你想了解更多有关Node.js视频教程,请关注php中文网。
以上就是nodejs是做什么的?有哪些功能的详细内容,更多请关注php中文网其它相关文章!
http模块
是node.js官方提供的用来创建web服务器的模块 通过http模块提供的http.createServer()方法就可以把一台电脑变成web服务器,从而对外开放提供web资源服务
1需要导入模块
Const http=require(‘http’)
就可以调用http
进一步理解http 服务器和普通电脑的区别 ,服务器上安装了web服务器软件例如lls ,apache等通过安装这些服务器软件就可以一台服务器
服务器相关的概念
Ip地址是互联网上每台计算机的唯一地址
在开发中可以使用127.0.0.1来进行测试 这个地址只限用来测试 不可以用来给哦别人访问
域名和域名服务器
Ip态难记用别名来代替 域名
IP和域名是对应关系 域名需要转换成ip才可以访问
127.0.0.1的域名是locallhost
端口号标识便于准确找到web服务器进行处理 一个端口只能被一个文本服务器占用
实际访问的时候可以省略端口号
创建web服务器
1创建web服务器的基本步骤
const server = http.createServer((req, res) => {
res.statusCode = 200 //端口
res.setHeader('Content-Type', 'text/plain')
res.end('你好世界\n')
})
server.listen(port, () => {
console.log(`服务器运行在 http://${hostname}:${port}/`)
})
搭建服务器
// 导入http模块
const http = require('http')
// 创建文本服务器实列
const server = http.createServer()
// 为服务器绑定一个request事件
server.on('request', function(req, res) {
console.log('someone visit our web server')
})
// 启动服务器
server.listen(80, function() {
console.log("hgedjkghdsgsdjkg")
})
req请求对象
// 导入http模块
const http = require('http')
// 创建文本服务器实列
const server = http.createServer()
// 为服务器绑定一个request事件
// req请求对象 包含了客服端相关的数据和属性
// req.url是客服端请求的url地址
server.on('request', req => {
const url = req.url
// req.method客服端请求的类型 get 和post
const method = req.method
console.log('url' + url + 'method' + method)
})
// 启动服务器
//8080端口
server.listen(8080, () => {
console.log('server runing at http://127.0.0.1:8080')
})
Req对象即为客服请求的对象
Res响应的对象
// 导入http模块
const http = require('http')
// 创建文本服务器实列
const server = http.createServer()
// 为服务器绑定一个request事件
// req请求对象 包含了客服端相关的数据和属性
// req.url是客服端请求的url地址
server.on('request', (req, res) => {
const url = req.url
// req.method客服端请求的类型 get 和post
const method = req.method
const str = 'url${ url} ${method}'
console.log('url' + url + 'method' + method)
// 调用res方法像客服端响应一些内容 客服端可以看到
res.end(str)
})
// 启动服务器
server.listen(8080, () => {
console.log('server runing at http://127.0.0.1:8080')
})
解决中文乱码问题
当调用res.end()方法时想客服端发送内容时会出现乱码问题此时需要手动设置编码格式
res.setHeader('Content-Type', 'text/html;charset=utf-8')
// 导入http模块
const http = require('http')
// 创建文本服务器实列
const server = http.createServer()
// 为服务器绑定一个request事件
// req请求对象 包含了客服端相关的数据和属性
// req.url是客服端请求的url地址
server.on('request', (req, res) => {
const url = req.url
// req.method客服端请求的类型 get 和post
const method = req.method
const str = '哈哈请求成功'
console.log('url' + url + 'method' + method)
// 手动设置中文乱码问题
res.setHeader('Content-Type', 'text/html;charset=utf-8')
// 调用res方法像客服端响应一些内容
res.end(str)
})
// 启动服务器
server.listen(8080, () => {
console.log('server runing at http://127.0.0.1:8080')
})
根据不同url地址响应不同的内容
核心步骤
1获取请求的url地址
2设置默认的响应内容为404 农田found
3判断用户请求的是否为或者/index.html页面
4判断用户清华求的是否是about.html
5设置Content-Type的响应头防止乱码
5使用res.end()方法把响应给客服内容
// 导入http模块
const http = require('http')
// 创建文本服务器实列
const server = http.createServer()
// 为服务器绑定一个request事件
// req请求对象 包含了客服端相关的数据和属性
// req.url是客服端请求的url地址
server.on('request', (req, res) => {
const url = req.url //1获取请求的url地址
// 2设置默认的响应内容为404 not found
let content = '404 Not Find!
'
// 3判断用户请求的是否为或者/index.html页面
if (url !== '/' || '/index.html'