02 第一个网站程序

一、第一个Demo

1、Demo功能

我们用NodeJs写出第一个Demo;

2、实现说明:

  1. Demo目录下创建app.js,用于服务启动及路由功能
  2. 创建Index.html,用于主界面;
  3. About、联系我们直接在浏览器出输出文字

二、实现代码

1.app.js

// 导入Node.js的http模块,用于创建HTTP服务器  
const http = require('http'); 
// 导入Node.js的文件模块,用于文件读取
const fs = require('fs');
// 定义服务器要监听的端口号  
const port = 3000;  
  
// 定义路由映射对象,用于处理不同的URL请求  
const routes = {  
  // 处理根路径的请求,返回index.html文件的内容  
  '/': (req, res) => {  
    // 设置响应头,指定内容类型为HTML  
    res.writeHead(200, {'Content-Type': 'text/html'});  
      
    // 读取index.html文件的内容,并将其作为响应发送给客户端  
    fs.readFile('index.html', 'utf8', (err, data) => {  
      if (err) {  
        // 如果读取文件出错,则发送错误响应  
        res.end('Error reading file');  
        return;  
      }  
      // 否则,将文件内容作为响应发送给客户端  
      res.end(data);  
    });  
  },  
  // 处理/about路径的请求,返回关于我们页面的内容  
  '/about': (req, res) => {  
    // 设置响应头,指定内容类型为HTML  
    res.writeHead(200, {  
      'Content-Type': 'text/html; charset=utf-8'  
    });   
    // 发送关于我们页面的内容作为响应  
    res.end('关于我们页面','utf8');  
  },  
  // 处理/contact路径的请求,返回联系我们页面的内容  
  '/contact': (req, res) => {  
    // 设置响应头,指定内容类型为HTML  
    res.writeHead(200, {  
      'Content-Type': 'text/html; charset=utf-8'  
    });   
    // 发送联系我们页面的内容作为响应  
    res.end('联系我们页面');  
  }  
};  
  
// 创建HTTP服务器实例,监听指定的端口号  
const server = http.createServer((req, res) => {  
  // 获取请求的URL路径  
  const path = req.url;  
  // 检查请求的路径是否在路由映射中存在对应的处理函数  
  if (routes[path]) {  
    // 如果存在,则调用对应的处理函数来处理请求并发送响应给客户端  
    routes[path](req, res);  
  } else {  
    // 如果请求的路径没有匹配的路由映射,则返回404错误响应,表示资源未找到  
    res.writeHead(404, {'Content-Type': 'text/plain'});  
    res.end('Not Found');  
  }  
});  
// 启动服务器,开始监听指定的端口号  
server.listen(port, () => {  
  console.log(`服务器正在运行,监听端口 ${port}`);  
});

2. Index.html

<!DOCTYPE html>  
<html>  
<head>  
  <meta charset="UTF-8">
  <title>Node.js 网站示例</title>  
</head>  
<body>  
  <h1>欢迎来到我的 Node.js 网站!</h1>  
  <p>这是一个简单的示例,展示了如何使用 Node.js 构建一个基本的网站。</p>  
  <ul>  
    <li><a href="/about">关于我们</a></li>  
    <li><a href="/contact">联系我们</a></li>  
  </ul>  
</body>  
</html>

三、补充说明

  1. server = http.createServer() 是Node.js中用于创建HTTP服务器的代码。它创建了一个基于事件的HTTP服务器,并返回一个HTTP模块封装的服务器对象。这个服务器对象可以用来监听指定的端口,处理客户端请求,并发送响应回客户端。
    在这个过程中,http.createServer()方法会创建一个基于Node.js内置的HTTP模块的服务器。这个服务器对象提供了一系列事件和方法,用于处理HTTP请求和响应。通过调用http.createServer()方法,您可以定义一个回调函数,该函数会在每次接收到客户端请求时被调用。在回调函数中,您可以处理请求、生成响应,并通过res.end()等方法发送响应回客户端。
    通过这种方式,您可以创建一个提供各种Web服务的服务器,例如静态文件服务、动态内容服务、API服务等。在回调函数中,您可以使用Node.js提供的各种功能和库来处理请求和生成响应,例如路由处理、中间件处理、数据库访问等。

2.res.writeHead 是 Node.js 中 HTTP 服务器响应对象 res 的一个方法,用于发送 HTTP 头部信息给客户端。这个方法可以设置响应的状态码、头部字段和头部内容。

参数

res.writeHead 方法接受两个参数:

  1. 状态码 (StatusCode): 一个整数,表示 HTTP 响应的状态码。例如,200 表示成功,404 表示未找到资源。
  2. 头部信息 (Header): 一个包含头部字段和值的对象,以字符串键值对的格式表示。例如,{'Content-Type': 'text/html'} 表示设置内容类型为 HTML。
  3. res.end 是 Node.js 中 HTTP 服务器响应对象 res 的一个方法,用于结束响应并发送数据给客户端。这个方法可以接受一个可选的参数,用于发送数据给客户端。
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值