当前位置: 首页 > news >正文

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 服务器。您可以根据需求添加更多的路由和功能。  

相关文章:

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 是一种…...

OpenCV(三):Mat类数据的读取

目录 1.Mat类矩阵的常用属性 2.Mat元素的读取 1.at方法读取Mat矩阵元素 at (int row,int col) 2.矩阵元素地址定位方式访问元素 3.Android jni demo 1.Mat类矩阵的常用属性 下面是一些Mat类的常用属性&#xff1a; rows: 返回Mat对象的行数。 cols: 返回Mat对象的列数。 …...

区块链BaaS篇

区块链BaaS&#xff08;Blockchain as a Service&#xff09;区块链即服务&#xff1b;感觉5年前做的BaaS和现在做的BaaS没啥区别&#xff0c;换了批人重复造轮子&#xff0c;BaaS做的越来越乱&#xff0c;也越来越中心化。BaaS是方便区块链调用的工具&#xff0c;工具是方便使…...

C++|观察者模式

观察者模式&#xff1a; 定义对象间的一种一对多&#xff08;变化&#xff09;的依赖关系&#xff0c;以便当一个 对象(Subject)的状态发生改变时&#xff0c;所有依赖于它的对象都 得到通知并自动更新 动机&#xff1a; 在软件构建过程中&#xff0c;我们需要为某些对象建立…...

【java 入侵 C# 之路】1-入门

感谢 https://www.cnblogs.com/mww-NOTCOPY/p/12213373.html 百度百科 jvm对应clr java se runtime对应 .net framework&#xff0c; jdk对应 .net framework sdk&#xff0c; java对应C# .NET 是开发者平台&#xff0c;它包含开发环境、技术框架、社区论坛、服务支持等&…...

【git】从一个git仓库迁移到另外一个git仓库

在远端服务器创建一个新的仓库 用界面创建&#xff0c;当然也可以用命令创建 拉去源仓库 git clone --bare git192.168.10.10:java/common.gitgit clone --bare <旧仓库地址>拉去成功以后会出现 进入到文件夹内部 出现下面信息&#xff1a; 推送到新的远端仓库 git …...

控制goroutine 的并发执行数量

goroutine的数量上限是1048575吗&#xff1f; 正常项目&#xff0c;协程数量超过十万就需要引起重视。如果有上百万goroutine&#xff0c;一般是有问题的。 但并不是说协程数量的上限是100多w 1048575的来自类似如下的demo代码: package mainimport ( "fmt" "ma…...

深入解析即时通讯App开发中的关键技术

即时通讯App开发在现代社交和通信领域中扮演着重要的角色。随着移动设备的普及和网络的高速发展&#xff0c;人们对即时通讯工具的需求不断增加。本篇文章将深入探讨即时通讯App开发中的关键技术&#xff0c;帮助读者了解该领域的最新动态和技术趋势。 基础架构和通信协议 现…...

ClickHouse进阶(三):ClickHouse 索引

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术&#xff0c;IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…...

四、MySQL(表操作)如何添加字段?修改表?删除字段?修改表名?删除表?格式化某张表?

1、添加字段 &#xff08;1&#xff09;基础语法&#xff1a; alter table 表名 add 字段名 类型名(长度) [comment注释] [约束]; &#xff08;2&#xff09;示例&#xff1a;添加nickname这个字段 2、修改表 修改表中某个字段的【数据类型】/【数据类型&字段名】 &…...

docker启动paddlespeech服务,并使用接口调用

一、检查docker容器是否启动 1.输入命令 systemctl status docker 启动 systemctl start docker 守护进程重启 sudo systemctl daemon-reload 重启docker服务 systemctl restart docker 重启docker服务 sudo service docker restart 关闭docker service docker…...

如何训练ChatGPT以生成音乐和创意艺术作品?

训练ChatGPT生成音乐和创意艺术作品是一个令人兴奋且具有挑战性的任务。这种技术&#xff0c;也被称为生成式艺术&#xff0c;涉及将人工智能&#xff08;AI&#xff09;模型与创意艺术的融合。在本文中&#xff0c;我将探讨如何训练ChatGPT以生成音乐和创意艺术作品的过程&…...

北约报告:2023-2043,下一代量子技术的发展与挑战

“当今的新技术正在以令人眼花缭乱的速度发展&#xff0c;我们所有人都可以在负责任且合乎道德的方式开发和部署新技术方面发挥作用。” ——这是副秘书长Mircea Geoană在2023年3月22日、在布鲁塞尔发布《北约科学技术组织2023-2043年趋势报告》时传达的信息。 Geoană先生强调…...

arm版Linux下安装es集群

背景&#xff1a;由于生产上网络没通&#xff0c;没办法&#xff0c;只能自己安装一个es集群的测试环境了&#xff0c;我的电脑是Mac M2&#xff0c;安装的Linux是centos7&#xff0c;也是arm版的。 第一步&#xff1a;查看自己Linux系统的版本 命令&#xff1a;uname -a 例如…...

vConsole调试工具的三种使用方式

1.在html页面时, 在页面引入 cdn 方式引入 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" co…...

不用订阅,不用破解,永久免费使用Axure最新版教程

首先去官网下载最新的axure&#xff0c;你没听错&#xff0c;就是最新的。 下载网址&#xff1a;Axure RP - UX Prototypes, Specifications, and Diagrams in One Tool 下载完后解压安装到本地&#xff0c;并注册属于你自己的账户&#xff0c;开始试用。可惜的是只有30天的试…...

合宙Air724UG LuatOS-Air LVGL API控件--复选框 (Checkbox)

复选框 (Checkbox) 复选框主要是让用户进行一些内容选择&#xff0c;或者同意用户协议。 示例代码 – 复选框回调函数 function event_handler(obj, event) if event lvgl.EVENT_VALUE_CHANGED then print(“State”, lvgl.checkbox_is_checked(obj)) end end – 创建复选框…...

使用nps实现内网穿透

1、介绍 ​ 当我们想把内网的一些资源暴露在公网上时&#xff0c;可以使用内网穿透功能。比如公司的内网服务器&#xff0c;部署了平时需要开发的项目&#xff0c;但是回到家中无法访问&#xff0c;就可以使用内网穿透&#xff0c;将公司内网的接口映射到一台公网的服务器上&a…...

时序预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元时间序列预测

时序预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元时间序列预测 目录 时序预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-BiGRU时间卷积双向门控循环单元时间序列预测&a…...

websocket和uni-app里使用websocket

一、HTTP是无状态协议 特点&#xff1a; 1、浏览器发送请求时&#xff0c;浏览器和服务器会建立一个连接。完成请求和响应。在http1.0之前&#xff0c;每次请求响应完毕后&#xff0c;会立即断开连接。在http1.1之后&#xff0c;当前网页的所有请求响应完毕后&#xff0c;才断…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...