js和nodejs的区别
js: 运行在浏览器中的脚本语言
缺点:
不能直接操作电脑上的文件
nodejs: 运行在服务器端的js
nodejs 的fs文件系统。 可以对电脑上的文件进行操作(增删改查)
常用的命令行操作:
-cd 文件夹名
进入文件夹 (注意这种只能本命令行进入下一级文件夹)
例a文件夹有b cd b 可以进入,但和a同级c cd c 不能进入
-
cd ..返回上一级
-
mkdir 文件夹名 新建文件夹
命令的历史记录:
通过 上下箭头 可以查看历史记录
安装nodemon 插件:
实现修改后自动更新,在命令行安装
nodejs 的热更新插件
全局安装: -g
1. npm i nodemon -g
安装成功后,使用命令
之前: node 文件名 执行文件
现在: nodemon 文件名 执行文件
关闭服务:
ctrl + c 终止服务
域名和服务器概念
-
服务器是没有办法识别域名的, 服务器只能识别IP地址
域名:https://xxx.xxx.com
也叫做 网址
例如:百度的网址 https://www.baidu.com/
https://baike.baidu.com/域名解析:
.com 是顶级域名
baidu 一级域名
baike 二级域名 -
域名分为:
顶级域名: .com .cn .edu .org
一级域名
二级域名
三级、四级域名等 -
服务器可以识别IP地址
IP地址: x.x.x.x
例如:127.0.0.1:3000
IPv4 IPv6域名和IP地址是一一对应的 ; 通过DNS 域名解析, 分布式数据库
localhost:3000 域名访问
127.0.0.1:3000 IP地址访问 127.0.0.1也叫做回环地址
http模块的搭建
通过http模块提供的方法可以创建服务器
首先搭建一个简单的服务器,模块名是js结尾 模块名中不能有中文
//1 引入http模块 (nodejs内置模块, 可以直接引入)
const http = require('http');
//2. 创建服务器 http.createServer() 方法
http.createServer((request,response)=>{
response.write('hello world');
// 3. response.end() 方法 返回数据 终止响应
response.end();
// 4. 服务要想正常开启,必须要有一个专用的端口号(通道), 默认nodejs的服务端口号是 3000
}).listen(3000,()=>{
console.log('server is running at 127.0.0.1');//翻译服务器运行在127.0.0.1
// 5. 回调函数 为了提示服务器正常开启 给自己看
})
然后执行命令 在文件的目录下打开nodejs的命令行
输入http://localhost:3000 或者 http://127.0.0.1:3000 都能够输出
http模块的详解
创建服务器方法
http.createServer((request, response))
创建服务器方法中两个参数的意义
request对象:客户端向服务器请求(传递的所有的数据等信息) 简写 req
response对象: 服务器向客户端进行响应(服务器返回的数据等信息) 简写 res
解决中文乱码问题 设置响应头(设置编码格式和文件的MIME类型)
response.writeHead(200, {‘Content-type’:“text/plain;charset=utf-8”})
// 200 是http状态码 (代码成功)
顺序是
- 设置响应头
- 返回多条数据 使用 res.write()方法
- response.end() 方法 返回数据 终止响应
常见的MIME类型
超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
GIF图形 .gif image/gif
JPEG图形 .jpeg,.jpg image/jpeg
au声音文件 .au audio/basic
// 通过http模块提供的方法可以创建服务器
// 1 引入http模块 (nodejs内置模块, 可以直接引入)
const http = require('http');
// 2. 创建服务器 http.createServer() 方法
// request对象:客户端向服务器请求(传递的所有的数据等信息) 简写 req
// response对象: 服务器向客户端进行响应(服务器返回的数据等信息) 简写 res
// 第一种写法
const port = 3000;
http.createServer((request, response) => {
// 3. response.end() 方法 返回数据 终止响应
// 数据作为end()方法的参数 进行返回客户端 end() 只能执行一次多次没有效果
// response.end('hello world')
// 解决中文乱码问题 设置响应头(设置编码格式和文件的MIME类型)
// 200 是http状态码 (代码成功)
// {
'Content-type':"text/plain;charset=utf-8"} 响应头
// text/plain (默认是纯文本) 文件的MIME类型 text/html text/css text/image
// 返回多条数据 使用 res.write()方法
response.write('hello world')
response.write('nodejs')
response.write('年后')
response.write('<h1>这是h1标签</h1>')
response.end();
// 4. 服务要想正常开启,必须要有一个专用的端口号(通道), 默认nodejs的服务端口号是 3000
}).listen(port, () => {
// 5. 回调函数 为了提示服务器正常开启
console.log('server is running at 127.0.0.1');
})
第二种写法
因为创建服务器是一个对象,所以我们可以起一个变量名
const server = http.createServer((request, response) => {
// 3. response.end() 方法 返回数据 终止响应
response.end('hello world')
})
server.listen(3000, ()=>{
console.log('server running ....');
})