node服务器

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("服务器成功启动");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值