一、安装node.js
按照文件 node和egg.md 的操作进行安装,版本是v12.16.3。
1.下载node安装包
https://nodejs.org/download/release/v12.16.3/
下载——以前的版本——12.16.3
不建议安装最新版(对Windows系统有一定的要求 预览版:bug多
.zip是压缩包,需要自己解压然后各自配置 .mis安装包:一直点下一步就OK
2.退出各种杀毒软件、防火墙
把电脑中安装的杀毒软件各种防护的东西先退出,Windows自带的防火墙关闭
3.新建文件夹nodejs
在非系统盘(defg)的根盘下新建一个文件夹,命名为nodejs(这里用的F盘)
4.安装node
双击安装包,所有的选择就点下一步,只有一步就是选择安装路径不要选默认(默认路径有空格)(这里的安装路径是 F:\nodejs )
5.添加环境变量
在系统变量里面添加NODE_PATH
在Path里面添加
6.测试环境变量是否安装成功
随便打开一个文件夹,地址栏输入cmd敲回车打开DOS小黑窗
输入node -v 敲回车
输入npm -v 敲回车
输入npm i nodemon -g 敲回车
二、http模块
查看电脑本机地址:在cmd里面输入ipconfig,回车,找到第一个 IPv4,我这里是192.168.36.1
如何写一个简单的http服务器:
/*
在文件所处的文件夹打开 cmd.exe 这个软件,输入Windows的指令:
node 02-nodeinstall.js ==>node就是去环境变量中找到这个node变量指向软件,然后用 node.exe 这个软件去运行 index.js 文件
停止:ctrl+c
清屏:cls
返回上一条命令:↑
*/
// 如何写一个简单的http服务器:
// 引入node自带的模块http这个模块 可以调用函数来创建后端服务器
var http = require("http") //引入官方的http模块
// 创建一个服务器对象,回调函数不会直接运行,会在用户每次访问当前计算机的ip下的8081端口运行
var app = http.createServer((req, res) => { //req代表前端发送过来的数据包
res.end("hello 666")
})
app.listen(8081) //监听计算机的端口:min-max
http模块:
在.js文件中写入代码,然后在当前文件夹的cmd里面输入 node js文件名,回车,运行后端程序;在浏览器打开本机网址。网址栏输入192.168.36.1:8081/home(8081是自己设置的监听计算机的端口,/home是自己设置的req.url=="/home"想要跳转的网址),回车,得到如图页面:
如果8081后面没有东西,则是这样的页面:
代码如下:
var http = require("http") //引入官方的http模块
// 创建一个服务器对象,回调函数不会直接运行,会在用户每次访问当前计算机的ip下的8081端口运行
var app = http.createServer((req, res) => { //req代表前端发送过来的数据包
console.log(req.url);
if (req.url == "/home") { //在网址后面输入 /home 才运行
res.setHeader("content-Type", "text/html;charset=utf8") //配置返回给用户的数据包的数据格式和编码的类型utf8 (不设置utf8,显示的中文就是乱码) //"text/html" text/ 后面是文件类型,end()里面写的是什么就是什么类型
res.end("<h1>你好,,home 666</h1>") //给前端最后一次发送数据包 end()里面数据类型有 string buffer
} else if (req.url == "/car") {
res.setHeader("content-Type", "text/html;charset=utf8")
res.end("<h1>car 666</h1>")
} else if(req.url=="/favicon.ico"){
// 给前端发送一个小图标
} else {
res.setHeader("content-Type", "text/html;charset=utf8")
res.end("<h1>你好,你输入的网址是乱输的 404</h1>")
}
res.end("hello 666")
})
app.listen(8081) //监听计算机的端口
三、fs模块
引入fs模块:
// 引入fs模块(系统自带的) file system (文件操作系统)
var fs=require("fs");
fs.readFile("./src/alipay.png",(err,data)=>{
console.log(err,data);
}) //readFile(文件路径path, (err,data)=>{})
使用fs发送图片给前端:
var http = require("http"),
fs = require("fs"),
app = http.createServer((req, res) => { //有无数个网址
if (req.url == '/alipay.png') {
// 读取一个图片
fs.readFile("./src/alipay.png", (err, data) => {
if (!err) { //如果不是err,则执行
res.end(data)
}
})
} else {
res.end("not found 404")
}
});
app.listen(8081);
静态网址:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>07-index</title>
</head>
<body>
<h1>hello home</h1>
<p>你好,1号</p>
<p>你好,2号</p>
<p>你好,3号</p>
<p>你好,4号</p>
<p>你好,5号</p>
<p>你好,6号</p>
<p>你好,7号</p>
<p>你好,8号</p>
<p>你好,9号</p>
<img src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.jj20.com%2Fup%2Fallimg%2F4k%2Fs%2F02%2F2109242312005c1-0-lp.jpg&refer=http%3A%2F%2Fimg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1661532277&t=9f6541312ca2c279ea732c9c0679afd8" alt="">
<p>你好,10号</p>
<p>你好,11号</p>
<p>你好,12号</p>
<p>你好,13号</p>
<p>你好,14号</p>
<p>你好,15号</p>
<p>你好,16号</p>
<img src="http://192.168.36.1:8081/src/ask.png" alt="">
<!-- http://192.168.36.1:8081/src/ask.png 绝对网络路径 -->
<img src="/src/ask.png" alt="">
<!-- /src/ask.png ==> 当前网页的网址中 http://ip:port/src/ask.png -->
<a href="/123">eb3l</a>