node服务器
使用HTML+css+js 开发的是浏览器端,又叫前端
node 服务器端 又叫后端
开发阶段:服务器端和浏览器端都在一台电脑上开发就可以了。
生产环境:服务器端是部署在服务器上的。浏览器端也是在服务器上,别人通过域名或者ip访问。
本地域名:localhost
本地IP:127.0.0.1
查看本地局域网ip
在cmd中使用ipconfig
node创建服务的模块为http。
// 引入http模块
const http = require("http");
调用http createServer方法创建服务
这个方法需要一个回调函数,回调函数中有两个形参 回调函数是在接收到请求时执行
node 是依靠事件驱动。
- request 请求信息(req)
- response 响应信息(res)
http.createServer(function(req,res){
// 如果有请求进来,需要给它响应。
// 设置请求头,请求头中指定编码格式
res.setHeader("content-type","text/platin;charset=utf8")
res.end("你好,东湖");
// 需要添加端口监听
}).listen(3000);//不推荐更改,因为你不知道每个应用的端口。如果两个程序的端口冲突,则软件运行会出错。
console.log("服务器已经启动");
// ctrl + c 停止服务运行。
write:向响应中添加数据,可以多次调用,但是不能在end后使用
end:结束本次响应,可以传参,参数也可以为空,参数也会被添加到响应中。只能调用一次,后面的end不会有作用。
const http = require("http");
const fs = require("fs");
http.createServer(function(req,res){
fs.readFile("b.txt","utf-8",function(err,data){
if(err){
console.log("读取失败:"+err);
return;
}
res.setHeader("content-type","text/platin;charset=utf8")
res.write(data);
res.write(data);//可以多次添加
res.end("1");//结束相应
})
}).listen(3000);
console.log("服务器已启动");
引入获取请求参数的模块
const queryString = require("querystring");
获取get参数
<form action="http://localhost:3000" method="get">
商品名称:<input type="text" name="keyword">
商品价格:<input type="text" name="price">
<br>
<input type="submit" value="提交">
</form>
获取用户输入信息
// 获取请求报文中的一些信息
const http = require("http");
// 引入获取请求参数的模块
const queryString = require("querystring");
// 第一个是请求信息对象,第二个是响应信息对象
http.createServer(function(req,res){
// 解决跨域问题
// 违反了同源策略时,会出现跨域: 协议,域名,端口三者只要有一个不同就会跨域。
res.setHeader("Access-Control-Allow-Origin","*");
let obj = queryString.parse(req.url.split('?')[1]);
//req.url.split('?')[1]将接收到的数据拆分,获取?后面的内容,再通过queryString.parse解析成为对象,得到的结果为{keyword="",price=""}
res.setHeader("content-type","text/platin;charset=utf8");
res.write(`您搜索的商品为${obj.keyword},价格为${obj.price}`);
// 添加端口监听
res.end();
}).listen(3000);
console.log("服务器成功启动");```
获取post参数
<form action="http://localhost:3000" method="post">
用户名:<input type="text" name="username">
<br>
密码:<input type="password" name="pwd">
<br>
<input type="submit" value="提交">
</form>
const http = require("http");
const queryString = require("querystring");
http.createServer(function (req, res) {
let data = "";
// 监听事件 只要有数据传入时就会触发
req.on("data",(chunk)=>{
data += chunk;
})
// 监听事件 数据传输完毕后触发
req.on("end",()=>{
// 将参数转为对象
let {username,pwd} = queryString.parse(data);
if (username==user.name&&pwd==user.pwd) {
res.write("欢迎你,"+username);
}else{
res.write("用户名或密码错误")
}
res.end();
})
}).listen(3000);
console.log("服务器成功启动");