首页 > 编程语言 >node.js入门第四天

node.js入门第四天

时间:2024-12-13 22:56:53浏览次数:5  
标签:node fs const res req console js 第四天 http

第四天学习内容安排

1. 复习第三天的内容
  • 基本模块:复习 Node.js 的核心模块,如 fs(文件系统)、http(HTTP 服务器)等。
  • 异步编程:回顾回调函数和 Promise 的基本用法。
2. 深入了解异步编程
  • 回调函数

    • 理解回调函数的概念及其在异步编程中的应用。
    const fs = require('fs');
    
    fs.readFile('example.txt', 'utf8', (err, data) => {
        if (err) {
            console.error(err);
            return;
        }
        console.log(data);
    });
    
  • Promise

    • 学习如何使用 Promise 处理异步操作:
    const fs = require('fs').promises;
    
    fs.readFile('example.txt', 'utf8')
        .then(data => {
            console.log(data);
        })
        .catch(err => {
            console.error(err);
        });
    
  • async/await

    • 学习如何使用 asyncawait 简化异步代码:
    const fs = require('fs').promises;
    
    async function readFile() {
        try {
            const data = await fs.readFile('example.txt', 'utf8');
            console.log(data);
        } catch (err) {
            console.error(err);
        }
    }
    
    readFile();
    
3. 创建简单的 HTTP 服务器
  • 使用 http 模块
    • 学习如何创建一个简单的 HTTP 服务器:
    const http = require('http');
    
    const server = http.createServer((req, res) => {
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/plain');
        res.end('Hello, World!\n');
    });
    
    server.listen(3000, () => {
        console.log('Server running at http://localhost:3000/');
    });
    
4. 路由处理
  • 使用 url 模块

    • 学习如何解析请求 URL:
    const url = require('url');
    
    const server = http.createServer((req, res) => {
        const parsedUrl = url.parse(req.url, true);
        res.statusCode = 200;
        res.setHeader('Content-Type', 'application/json');
        res.end(JSON.stringify(parsedUrl));
    });
    
  • 基本路由处理

    • 根据不同的 URL 路径返回不同的响应:
    const server = http.createServer((req, res) => {
        if (req.url === '/') {
            res.statusCode = 200;
            res.setHeader('Content-Type', 'text/plain');
            res.end('Home Page\n');
        } else if (req.url === '/about') {
            res.statusCode = 200;
            res.setHeader('Content-Type', 'text/plain');
            res.end('About Page\n');
        } else {
            res.statusCode = 404;
            res.setHeader('Content-Type', 'text/plain');
            res.end('404 Not Found\n');
        }
    });
    
5. 使用 Express 框架
  • 安装 Express

    • 使用 npm 安装 Express:
    npm install express
    
  • 创建基本的 Express 应用

    const express = require('express');
    const app = express();
    
    app.get('/', (req, res) => {
        res.send('Home Page');
    });
    
    app.get('/about', (req, res) => {
        res.send('About Page');
    });
    
    app.listen(3000, () => {
        console.log('Server running at http://localhost:3000/');
    });
    
6. 实践练习
  • 创建一个简单的 Node.js HTTP 服务器,处理不同的路由请求。
  • 使用 Promise 和 async/await 读取文件并返回内容。
  • 使用 Express 框架创建一个简单的 Web 应用,包含多个路由。

标签:node,fs,const,res,req,console,js,第四天,http
From: https://blog.csdn.net/2401_89389294/article/details/144411203

相关文章

  • JS-16 循环语句之for
    循环语句用于重复执行某个操作for语句是循环命令,可以指定循环的起点,终点和终止条件。他的格式如下for(初始化表达式;条件;迭代因子){语句}for语句后面的括号里面,由三个表达式。①初始表达式(initialize):确定循环变量的初始值,只在循环开始时执行一次。②布尔表达式(test):每轮循......
  • js数组一
    Array构造函数创建Array对象调用Array()时可以使用或者不适用new,都会创建一个新的Array实例参数elementN:根据给地的元素创建一个js数组,但是当仅有一个参数为数字时除外arrayLength:如果传递给Array构造函数的唯一参数是介于0到2^32-1(含)之间的整数,这将返回一个新的js数组,......
  • JS-14 条件语句之switch
    多个if...else连接在一起使用的时候,可以转为使用更方便的switch结构表达式→值1→语块1→break;→表达式→值2→语块1→break;→表达式→defalut→默认语块→switch(fruit){case"banana"://...break;case"apple"://...default://...}需要注意的......
  • 基于Java的springboot/SSM+vue.js+uniapp小程序软件学院学生成绩管理系统的附带文章源
    文章目录前言详细视频演示具体实现截图后端框架SpringBoot前端框架Vue持久层框架MyBaits为什么选择我代码参考数据库参考测试用例参考源码获取前言......
  • 实战攻防中针对JS路径的泄露和Webpack漏洞的初探
    0x1前言浅谈这篇文章给师傅们分享下前段时间跟其他师傅学习和交流的Webpack相关漏洞,这个漏洞相对来说比较冷门,在web漏洞中不是那么的热度高,但是平常去挖掘和发现这个漏洞相对来说还是不难的。后面要是有机会可以给师傅们分享下油猴的相关脚本去找Webpack漏洞泄露的js敏感......
  • linux 不通外网安装node-sass
      找到下载失败的地址,直接下载对应node版本的源文件,放入构建机的某个根目录下(需要用到绝对地址)如:/app/cache/ ,linux不需要解压,window需要解压。如:/app/cache/node-v14.21.1-headers.tar.gzhttps://nodejs.org/download/release/  缺少binding.node文件:  执行:no......
  • json转成数组,数组转成json,json编辑器
    module.exports={JSONToPathArr(data){constresArr=[]constpArr=['']constlist=[data]for(leti=0;i<list.length;i++){constjson=list[i]for(letkinjson){const......
  • ‌Bull是一个基于Redis的队列库,专为Node.js设计
    ‌Bull是一个基于Redis的队列库,专为Node.js设计,提供高性能和可靠的任务处理能力‌。它通过Redis作为后端存储,确保任务的持久性和高可用性。Bull的设计理念是简单、高效,同时具备强大的功能,能够满足各种复杂的任务调度需求‌12。Bull的主要功能‌高性能‌:Bull采用无轮询设计,极大......
  • node.js毕设高校问答平台 论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景随着高校规模的不断扩大和信息技术的飞速发展,高校内部的信息交流需求日益增长。关于高校问答平台的研究,现有研究主要以综合性问答平台为主,专门针对高校......
  • node.js毕设基于Java的航班订票管理系统 论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于航班订票管理系统的研究,现有研究主要以大型综合票务系统或特定功能模块的优化为主,专门针对基于Java构建具有多种功能(如用户、机票信息、订单信息、......