nodejs之http介绍

本文详细介绍了Node.js中HTTP模块的使用,包括如何创建HTTP服务器、处理GET请求参数及URL解析。通过示例代码,读者可以快速掌握用HTTP模块开发Web应用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http是nodejs中一个非常重要的内置模块,用于开发http服务器和web应用程序。

创建一个http服务非常简单。

04_http.js

//04 http 介绍
 
//引入http 模块
var http=require("http");
 
//创建http服务器实例
var server =http.createServer(function (req,res) {
 
    res.writeHead(200,{'content-type':'text/html;charset=utf-8'});
 
    res.end("你好nodejs");
 
});
 
//监听本地端口 3000
server.listen(3000);
console.log("nodejs server run at 3000");

05_http_url_get.js

//05 http url get
//介绍 req 和res对象 、 url模块  、获取http get参数
var http=require("http");
var  url=require("url");
 
var server =http.createServer(function (req,res) {
    var reqUrl = req.url;
 
    if(reqUrl=='/favicon.ico'){//忽略 ico小图标
        return ;
    }
 
     
    console.log(reqUrl);
    //使用url模块  解析req.url 得到一个urlObj  对象
     var urlObj= url.parse(reqUrl,true);
     console.log(urlObj);
 
 
    res.writeHead(200,{'content-type':'text/html;charset=utf-8'});
    res.write('请求url: '+reqUrl+'<br/>');
    res.write('pathname: '+urlObj.pathname+'<br/>');  //requestPage
    res.write('get参数name: '+urlObj.query['name']+'<br/>'); //get 请求参数
    res.write('get参数age: '+urlObj.query['age']+'<br/>');//get请求参数
    res.write('search: '+urlObj.search+'<br/>'); //查询字符串  ?name=zhangsan&age=22
 
    // 浏览器输入  http://localhost:3000/about?name=zhangsan&age=22
    //urlObj 对象如下
    // Url {
//     protocol: null,
//         slashes: null,
//         auth: null,
//         host: null,
//         port: null,
//         hostname: null,
//         hash: null,
//         search: '?name=zhangsan&age=22',
//         query: { name: 'zhangsan', age: '22' },
//     pathname: '/about',
//         path: '/about?name=zhangsan&age=22',
//         href: '/about?name=zhangsan&age=22' }
 
    res.end();//结束响应
});
server.listen(3000);
console.log('nodejs server run at 3000');

 

### Node.js 技术栈介绍 #### NPM 与 Yarn 包管理工具 Node.js 生态系统中的包管理和依赖处理至关重要。NPM(Node Package Manager) 是默认的 JavaScript 包管理器,允许开发者轻松安装、共享以及重用代码库[^1]。 Yarn 可视为 NPM 的替代品或补充选项,提供了更快的速度和更稳定的依赖解析机制。它同样支持从公共仓库下载模块并能有效解决版本冲突问题。两者都极大地促进了前端工程化实践的发展[^2]。 ```bash npm install express yarn add nestjs ``` #### Express.js Web 框架 Express.js 属于基于 Node.js 的轻量级 web 应用框架之一,被广泛应用于快速搭建 RESTful API 和 MVC 架构的应用程序中。其灵活性使得众多开发者能够高效创建各种规模的服务端逻辑[^3]。 ```javascript const express = require('express'); const app = express(); app.get('/', function(req, res){ res.send('Hello World!'); }); app.listen(3000); console.log('Server running at http://localhost:3000/'); ``` #### NestJS 后端开发框架 不同于传统的 Express.js 风格编程模型,NestJS 提倡面向对象设计原则(OOP),函数式编程(FP),并通过装饰器语法增强了 TypeScript 支持下的声明式编码体验。这不仅提高了代码可读性和维护性,同时也简化了复杂业务场景下微服务架构的设计与实现过程[^4]。 ```typescript import { Controller, Get } from '@nestjs/common'; @Controller() export class AppController { @Get() getHello(): string { return 'Hello World!'; } } ``` #### Serverless 架构模式 随着云计算技术的进步,无服务器(Serverless)计算逐渐成为一种新兴趋势。在这种范型里,开发者无需关心底层基础设施配置即可专注于编写核心功能代码;而像 AWS Lambda 或阿里云 Function Compute 这样的服务平台则负责自动扩展资源来响应请求流量变化情况。 Next.js 加上 Vercel 组合提供了一种便捷的方式来进行静态站点生成及动态页面渲染操作,并且可以很容易地部署到云端环境中去。然而考虑到网络延迟等因素影响用户体验度的问题,在选择具体实施方案时还需综合考量目标市场所在区域内的可用性状况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值