python web 开发与 Node.js + Express 创建web服务器入门

目录

1. Node.js + Express 框架简介

2  Node.js + Express 和 Python 创建web服务器的对比

3 使用 Node.js + Express 创建web服务器示例

3.1 Node.js + Express 下载安装

3.2 使用Node.js + Express 创建 web服务器流程


1. Node.js + Express 框架简介

        Node.js + Express 是一种常用于构建 Web 应用程序的开发堆栈,其中 Node.js 是运行时环境,而 Express 是一个流行的 Web 应用程序框架。它们的组合使得构建高性能、可扩展的 Web 应用变得更加容易。以下是 Node.js 和 Express 的简介:

  1. Node.js:

    • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,用于构建高性能、可扩展的网络应用程序。
    • Node.js 支持非阻塞、事件驱动的 I/O 模型,这使得它特别适用于处理并发请求,例如 Web 服务器。
    • Node.js 允许您在服务器端使用 JavaScript,从而使前端和后端都能够使用相同的语言。
    • Node.js 生态系统非常丰富,拥有大量的第三方模块和工具,可用于各种任务。
  2. Express 框架:

    • Express 是一个基于 Node.js 的 Web 应用程序框架,旨在简化构建 Web 应用的过程。
    • 它提供了路由、中间件、模板引擎等功能,使开发者能够更轻松地构建功能丰富的 Web 应用程序。
    • Express 使用中间件来处理请求和响应,这使得处理逻辑能够被模块化,易于维护。
    • 它具有灵活性,您可以根据项目的需要选择添加所需的模块和功能。
    • Express 是开源的,并且拥有活跃的社区支持,使其能够不断演化和改进。

        Node.js + Express 结合在一起,使得开发者能够快速构建现代的、高性能的 Web 应用程序。它适用于各种用例,从简单的静态网页到复杂的单页应用和 RESTful API。借助 Node.js 的异步特性和 Express 的便利性,开发者能够轻松地处理并发请求、路由、中间件处理、数据库集成等任务,从而创建出功能强大且可扩展的应用程序。

2  Node.js + Express 和 Python 创建web服务器的对比

        Node.js + Express在构建现代、复杂的Web应用程序方面更为专业和强大,尤其在处理异步操作和高并发方面表现出色。

        Python则更适合通用的编程任务,以及一些简单的Web服务器需求。

        从以下几方面详细说明:

  1. 编程语言:

    • Node.js + Express:使用JavaScript编程语言。
    • Python:使用Python编程语言。
  2. 环境:

    • Node.js + Express:Node.js是一个专门用于构建网络应用程序的运行时环境,它具有强大的异步处理和事件驱动的特性。
    • Python:Python是一种通用的编程语言,也可以用于构建网络应用程序,但在网络开发方面可能不如Node.js专业。
  3. 模块和库:

    • Node.js + Express:使用Express框架来构建Web应用程序,它提供了丰富的功能,包括路由、中间件、模板引擎等。
    • Python:使用http.serversocketserver等模块来创建简单的HTTP服务器,但在创建更复杂的应用程序时,可能需要使用其他库或框架。
  4. 语法:

    • Node.js + Express:使用JavaScript的语法和模块系统。
    • Python:使用Python的语法和模块系统。
  5. 生态系统:

    • Node.js + Express:Node.js 生态系统非常丰富,有大量的第三方模块和工具可以使用,适用于构建各种类型的Web应用程序。
    • Python:Python也有强大的生态系统,但在Web开发方面可能相对较少,尤其是在构建大型Web应用程序时。
  6. 异步处理:

    • Node.js + Express:Node.js非常适合处理大量并发请求,因为它的事件驱动和非阻塞I/O模型。
    • Python:Python在处理大量并发请求方面可能相对较弱,但对于一些简单的用例,它也可以很好地工作。

3 使用 Node.js + Express 创建web服务器示例

     Node.js + Express 创建web服务器示例:

3.1 Node.js + Express 下载安装

  1. 安装 Node.js: 首先,确保您已经安装了Node.js。您可以在Node.js 官方网站https://nodejs.org/icon-default.png?t=N7T8https://nodejs.org/ 下载并安装。

  2. 创建项目目录:创建一个新文件夹作为您的项目目录。在命令行中导航到该目录并执行以下步骤。

  3. 初始化项目: 打开命令行并运行以下命令,以初始化一个新的Node.js项目。按照提示配置项目信息。

npm init

     4 安装 Express: 在命令行中运行以下命令,以安装 Express。

npm install express

3.2 使用Node.js + Express 创建 web服务器流程

  1. 创建文件: 在项目目录下创建以下文件。

    • index.html:HTML 页面
    • styles.css:CSS 样式表
    • script.js:JavaScript 脚本
    • server.js:Express 服务器
  2. index.html:index.html 文件中,编写 HTML 页面。

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="styles.css"><title>Node.js + Express Example</title>
    </head>
    <body><header><h1>Welcome to Our Website</h1><nav><ul><li><a href="/">Home</a></li><li><a href="/about">About</a></li><li><a href="/contact">Contact</a></li></ul></nav></header><main><h2>Home Page</h2><p>This is the home page of our website.</p></main><script src="script.js"></script>
    </body>
    </html>
    

    3. styles.css:styles.css 文件中,添加一些样式规则。

    body {font-family: Arial, sans-serif;margin: 0;padding: 0;
    }header {background-color: #333;color: #fff;padding: 1rem;
    }nav ul {list-style: none;display: flex;
    }nav li {margin-right: 1rem;
    }nav a {text-decoration: none;color: #fff;
    }main {padding: 2rem;
    }
    

    4. script.js:script.js 文件中,添加一个简单的 JavaScript 脚本。

    console.log("Hello from script.js");
    

    5. server.js:server.js 文件中,添加以下代码来创建一个 Express 服务器。

    const express = require('express');
    const app = express();
    const port = 3000;// 静态资源托管
    app.use(express.static('public'));// 路由
    app.get('/', (req, res) => {res.sendFile(__dirname + '/index.html');
    });app.get('/about', (req, res) => {res.send('<h2>About Us</h2><p>We are a team of developers.</p>');
    });app.get('/contact', (req, res) => {res.send('<h2>Contact Us</h2><p>Email us at contact@example.com.</p>');
    });// 启动服务器
    app.listen(port, () => {console.log(`Server is running on http://localhost:${port}`);
    });
    

6. 运行服务器: 在命令行中运行以下命令,以启动您的静态服务器。

node server.js

7. 访问网页: 打开浏览器并访问 http://localhost:3000,您应该能够看到您创建的网页,包括导航、样式和 JavaScript。

        在这个示例中,server.js 文件使用 Express 创建了一个 Web 服务器,处理了根路径 / 和其他路由的请求。不仅您在 index.html 文件中看到的 HTML,还包括 /about/contact 路由的简单响应。这个示例展示了如何创建具有路由和样式的 Web 服务器。您可以根据需求添加更多的路由和功能。  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/95741.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

攻防世界-Caesar

原题 解题思路 没出现什么特殊字符&#xff0c;可能是个移位密码。凯撒密码加密解密。偏移12位就行。

ealtek高清晰音频管理器(realtek高清晰音频管理器怎么设置win10)

本文为大家介绍realtek高清晰音频管理器(realtek高清晰音频管理器怎么设置win10)&#xff0c;下面和小编一起看看详细内容吧。 我们都使用电脑来听音乐、看电影或者进行其他操作&#xff0c;但是如果我们觉得电脑产生的音效不够立体&#xff0c;我们就会想要去Realtek来设置音…

opencv案例06-基于opencv图像匹配的消防通道障碍物检测与深度yolo检测的对比

基于图像匹配的消防通道障碍物检测 技术背景 消防通道是指在各种险情发生时&#xff0c;用于消防人员实施营救和被困人员疏散的通道。消防法规定任何单位和个人不得占用、堵塞、封闭消防通道。事实上&#xff0c;由于消防通道通常缺乏管理&#xff0c;导致各种垃圾&#xff0…

IDEA2023隐藏.idea和.iml文件

IDEA2023隐藏.idea和.iml文件 1. 打开file -> setting,快捷键CtrlAlts2. Editor -> File types3. 点击右侧Ignore files and folders一栏4. 添加需要忽略的文件5. 最重要一步 IDEA新建项目会自动生成一个.idea文件夹和.iml文件&#xff0c;开发中不需要对这两个文件修改&…

大数据时代下的精准营销

在大数据时代&#xff0c;人们的信息越来越透明&#xff0c;留在网络上的各种数据也是企业进行营销的一个重要的生产要素。一直以来&#xff0c;营销的科学性正是因为运用了自然科学中一级互联网中的数据收集手段&#xff0c;严谨的记录、搜集和分析消费者的各项数据和日常生活…

“新KG”视点 | 陈华钧——大模型时代的知识处理:新机遇与新挑战

OpenKG 大模型专辑 导读 知识图谱和大型语言模型都是用来表示和处理知识的手段。大模型补足了理解语言的能力&#xff0c;知识图谱则丰富了表示知识的方式&#xff0c;两者的深度结合必将为人工智能提供更为全面、可靠、可控的知识处理方法。在这一背景下&#xff0c;OpenKG组织…

JVM解密: 解构类加载与GC垃圾回收机制

文章目录 一. JVM内存划分二. 类加载机制1. 类加载过程2. 双亲委派模型 三. GC垃圾回收机制1. 找到需要回收的内存1.1 哪些内存需要回收&#xff1f;1.2 基于引用计数找垃圾(Java不采取该方案)1.3 基于可达性分析找垃圾(Java采取方案) 2. 垃圾回收算法2.1 标记-清除算法2.2 标记…

学习Bootstrap 5的第二天

​​​​​​​ 目录 前言 网格系统 网格类 网格系统规则 网格的基本结构 网格选项 从堆叠到水平 自动布局列 超小型设备 超小型设备网格实例 自动布局列 小型设备 小型设备网格实例 自动布局列 中型设备 中型设备网格实例 自动布局列 大型设备 大型设备网…

【python】实现积分

借助sympy.integrate() 符号运算库&#xff0c;所以里面的exp()&#xff0c;sin()等都要使用sympy库中的函数&#xff0c;如果使用numpy库中的函数时没用的。 import sympy as sp import numpy as np x sp.symbols("x") print(sp.integrate(sp.exp(-x**2), (x, -s…

Cygwin是什么?是Windows还是Linux?

原文作者&#xff1a;gentle_zhou 原文链接&#xff1a;https://bbs.huaweicloud.com/blogs/408674 最近在和客户交流的时候&#xff0c;一直以为客户的研发环境就是windows 7&#xff0c;直到和对面的研发团队交流的时候&#xff0c;得到的反馈是在windows 7系统上安装了Cygw…

CATIA Composer R2023安装教程

软件下载 软件&#xff1a;CATIA Composer版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;1.82G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.60GHz 内存8G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pa…

linux创建进程

linux创建进程 准备工作 准备工作 在Ubuntu64系统上 1、安装GCC和Make工具 编译器GCC&#xff1a;把C源码转为二进制程序 Make&#xff1a;自动编译多源文件项目 sudo apt-get update #更新存储库 sudo apt-get install build-essential #安装build-essential包 gcc --versio…