发布时间:2023-04-30 文章分类:WEB开发, 电脑百科 投稿人:王小丽 字号: 默认 | | 超大 打印

1. 下载 node.js

Node.js

2. 创建一个 js 文件 01_server.js,写入以下内容:

// 导入 hhtp 模块
const http = require("http");
// 创建服务器实例
const server = http.createServer();
// 监听客户端请求事件
// req 是此次请求,res 则是此次请求的结果
server.on("request", (req, res) => {
  console.log("客户端请求了一次");
  const url = req.url; // 此次请求的 路径
  const method = req.method; // 此次请求的 方法
  console.log(`请求的地址是${url},方法是${method}`);
});
// 启动服务器
server.listen(8080, () => { // 8080 是服务开启在本机的 8080 端口
  console.log("服务器启动成功!");
});

思路:

  1. 先从 node.js 里导入内置的 http 模块
  2. 使用 http 模块的 createServer 方法创建一个实例
  3. 在启动服务器之前,配置好监听客户端请求的事件函数 server.on(),里面进行一些对该请求的回应操作
  4. 最后开启服务,并配置端口,本地的 ip 地址为 localhost 或者 127.0.0.1,此次服务的地址为 127.0.0.1:8080

3. 打开终端开启服务

  1. 在终端进入 server.js 的文件夹目录下
  2. 使用 node server.js 命令开启服务

node_开启本地服务

4. 测试服务器是否可用

方法一: 使用浏览器发起 GET 请求:

  1. 打开浏览器访问:localhost:8080 或者 127.0.0.1:8080
  2. 此时浏览器不会显示内容(没有回应)
  3. 终端会记录我们每一次的请求(浏览器刷新也算一次请求)
  4. 终端会记录请求的地址,地址默认为 /
  5. 可以请求 localhost:8080/index, 或者 127.0.0.1:8080/login

node_开启本地服务

方法二: 使用 postman 软件发起 POST 请求:

1. 安装 postman: Postman

2. 注册登陆后使用:选择请求方法和地址

node_开启本地服务

 5. 服务器回应

  1. 在 server.on 函数中:
  2. 定义服务器的回应:response,
  3. 使用 res.end() 方法结束此次访问并以 response 回应
const response = `这个地址是 ${url},方法是 ${method}`;
// 这里添加解决中文乱码的代码
res.end(response)

浏览器会得到乱码,但是在 postman  中不会

node_开启本地服务

解决方案:设置响应头 setHeader:

添加代码:

res.setHeader("Content-type","text/html; charset=utf-8") 

6. 根据请求地址动态展示内容

// 导入 http 模块
const http = require("http");
// 开启服务
const server = http.createServer();
// 监听客户端
server.on("request", (req, res) => {
  // 获取 url 地址,和方法
  const url = req.url;
  const method = req.method;
  // 初始化 content 的值
  var content = "";
  // 判断请求路径,以展示不同的页面内容
  if (url === "/" || url === "/index") {
    content = "<h2>首页</h2>";
  } else if (url === "/login") {
    content = "<h2>登陆页</h2>";
  } else {
    content = "<h2>404 NOT FOUND</h2>";
  }
  // 回应内容
  const response = `请求路径是${url},方法是${method}`;
  // 设置响应头,可解决乱码问题
  res.setHeader("Content-type", "text/html; charset=utf-8");
  // 回应客户端
  res.end(response);
});
// 开启服务器
server.listen("8080", () => {
  console.log("服务已开启");
});