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

nodejs入门教程4:nodejs创建第一个应用

1. 安装 Node.js

首先,确保你的计算机上已经安装了 Node.js。如果还没有安装,可以从官方网站(https://nodejs.org)下载并安装最新的 LTS 版本。安装完成后,你可以在命令行或终端中运行以下命令来验证安装:

node -v

如果你看到版本号,表示 Node.js 已成功安装。

2. 创建项目目录

在命令行中,创建一个新的目录来存放你的项目文件,并进入该目录。例如:

mkdir myapp
cd myapp

3. 初始化项目

运行 npm init 来创建项目的 package.json 文件。你可以按回车键接受默认值,或者根据需要填写相关信息。为了简化操作,可以使用 -y 参数来自动生成默认的 package.json 文件:

npm init -y

4. 创建服务器文件

在项目目录中创建一个名为 server.js 的文件。这个文件将是你的应用程序入口点。

5. 编写代码

打开 server.js 文件,并输入以下代码:

// 导入 http 模块
const http = require('http');// 定义服务器监听端口
const port = process.env.PORT || 3000;// 创建 HTTP 服务器
const server = http.createServer((req, res) => {// 设置响应头res.writeHead(200, {'Content-Type': 'text/plain'});// 发送响应数据res.end('Hello World!\n');
});// 监听端口
server.listen(port, () => {console.log(`Server running at http://localhost:${port}/`);
});

这段代码创建了一个简单的 HTTP 服务器,当访问 http://localhost:3000/ 时,它会返回 “Hello World!”。

6. 运行服务器

回到命令行,运行以下命令来启动你的服务器:

node server.js

现在,打开浏览器并访问 http://localhost:3000/,你应该会看到 “Hello World!” 的消息。

7. 使用 nodemon 自动重启服务器(可选)

为了方便开发时自动重启服务器,你可以安装 nodemonnodemon 会在你保存文件后自动重启服务器。首先,你需要安装 nodemon 作为开发依赖:

npm install --save-dev nodemon

然后,在 package.json 文件中添加一个启动脚本来使用 nodemon

{"name": "myapp","version": "1.0.0","description": "","main": "server.js","scripts": {"start": "nodemon server.js"},"keywords": [],"author": "","license": "ISC","devDependencies": {"nodemon": "^2.0.15"}
}

现在你可以使用 npm start 来启动服务器,而 nodemon 会监听文件变化并在你保存文件后自动重启服务器。

8. 扩展功能

你可以在此基础上继续扩展功能,例如添加路由处理、数据库连接等。Node.js 拥有庞大的生态系统和无数的库和框架,如 Express.js(一个流行的 web 应用框架)和 Mongoose(用于 MongoDB 的对象数据模型库)等,可以帮助你构建更复杂的应用。

通过以上步骤,你已经成功创建了你的第一个 Node.js 应用。继续探索 Node.js,并尝试使用不同的库和框架来扩展你的技能。实践是学习的关键,所以不断尝试新东西,你将成为一名更加熟练的 Node.js 开发者。

相关文章:

nodejs入门教程4:nodejs创建第一个应用

1. 安装 Node.js 首先,确保你的计算机上已经安装了 Node.js。如果还没有安装,可以从官方网站(https://nodejs.org)下载并安装最新的 LTS 版本。安装完成后,你可以在命令行或终端中运行以下命令来验证安装:…...

启用 iPhone 原生的五笔输入

聊聊如何在 iOS 中使用原生的五笔输入法 本文虽然介绍的是如何添加五笔键盘,其实其他键盘(双拼,外语键盘、第三方输入法)也是类似的添加方式。 ‍ 使用原生的理由 虽然之前的文章列了不少第三方的五笔输入法,但其实…...

这个工具让你轻松开发一个带AI功能的Notion

这个工具让你轻松开发一个带AI功能的Notion Plate 是一款由 AI 加持的富文本编辑器,旨在帮助开发者创建功能强大的 WYSIWYG 文本编辑工具。本文将介绍 Plate 的基本信息、特点、以及如何快速上手使用。 软件简介 Plate 由 udecode 开发,基于 React 和 S…...

光耦合器的关键作用和创新---腾恩科技

光耦合器或光隔离器已成为电路中必不可少的器件,它允许信号在无需直接电接触的情况下跨不同电压域传输。这种隔离能力对于保护低压元件免受高压电路的潜在损坏至关重要。本文将仔细研究光耦合器在当今技术中发挥的独特作用,并探讨其在各种应用中不断扩展…...

穿越死锁的迷雾:pthread_mutex_lock的终极挑战与破解策略

穿越死锁的迷雾:pthread_mutex_lock的终极挑战与破解策略 一、死锁的基本概念二、pthread_mutex_lock 出现死锁的原因三、pthread_mutex_lock 出现死锁的表现四、处理pthread_mutex_lock 出现死锁的方法1. 避免死锁1.1 遵循锁的顺序原则1.2 使用定时锁1.3 使用尝试锁1.4 使用递…...

Dockerfile制作Oracle19c镜像

Dockerfile文件 cat > Dockerfile << EOF # 使用 Oracle Linux 8 作为基础镜像 FROM oraclelinux:8# 复制 Oracle 19c 安装包 COPY oracle-database-ee-19c-1.0-1.x86_64.rpm /tmp/# 安装 Oracle 19c 数据库和依赖 RUN yum localinstall -y /tmp/oracle-database-ee-…...

【时间之外】IT人求职和创业应知【23】

目录 新闻一:央行发布首个买断式逆回购交易公告 新闻二:2024CCF科技创业大赛报名截止 新闻三:BNB Chain将在迪拜主办第四届BNB孵化联盟(BIA) 认知决定你的赚钱能力。以下是今天可能影响你求职和创业的热点新闻: 今日关键字:TCL两连扳,已经跑了,我的认知就到此了 新…...

后端:Spring-1

文章目录 1. 了解 spring(Spring Framework)2. 基于maven搭建Spring框架2.1 纯xml配置方式来实现Spring2.2 注解方式来实现Spring3. Java Config类来实现Spring 2.4 总结 1. 了解 spring(Spring Framework) 传统方式构建spring(指的是Spring Framework)项目&#xff0c;导入依…...

OTX系统架构分析

OTX&#xff08;Open Test Sequence Exchange&#xff09;系统架构是一种专门为汽车行业设计的测试序列交换格式&#xff0c;它基于ISO 13209标准&#xff0c;旨在提供一种独立于测试人员的可执行测试序列描述格式。 一、OTX系统架构概述 OTX架构是一种标准化的平台和格式&am…...

ASO如何低预算进行优化

当一个产品打造出来之后&#xff0c;正式上线是从零到一的过程&#xff0c;那从一到一百的路径就是获取流量到商业变现这个环节产生的&#xff0c;之前的文章也说过&#xff0c;一个产品只有有了一定的曝光才能获得相应的搜索流量或下载流量 ASO的江湖地位&#xff1a;有数据显…...

非线性数据结构之数

一、基本概念 1. 二叉树的节点与深度 节点&#xff1a;二叉树的基本组成单位&#xff0c;每个节点包含一个数据值、一个左子节点和一个右子节点。树的深度&#xff08;Height&#xff09;&#xff1a;指树的根节点到叶子节点的最长路径所包含的边数。 2. 二叉树的类型 叶节…...

个人开发三步走

一、开发准备 1&#xff0e;需求分析&#xff1a;需求是开发的起点。第一步要做的就是明确需求&#xff0c;具体来说就是分析目标用户、他们的需求(功能需求、性能需求、安全需求)和痛点。 2&#xff0e;技术选型&#xff1a;综合开发需求、个人能力&#xff08;能熟练使用&a…...

qt QAction详解

1、概述 QAction是Qt框架中的一个抽象类&#xff0c;用于表示用户界面中的一个动作&#xff08;action&#xff09;。这些动作可以绑定到菜单项、工具栏按钮或快捷键上&#xff0c;提供了一种灵活的方式来处理用户交互。QAction不仅包含了动作的名称、图标、提示信息等属性&am…...

建立maven项目常见问题解决办法

从git拉的项目爆红 https://blog.csdn.net/wsdbld_/article/details/115380325 idea点击具体的类没有反应 https://www.likecs.com/show-204943934.html maven Could not find artifact com.** 无法下载原因分析 https://www.cnblogs.com/thinkingandworkinghard/p/100824…...

Windows 10 安装使用Docker踩过的坑和解决-31/10/2024

目录 环境版本 一、Docker Desktop双击启动没反应&#xff0c;open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified. 二、Docker Desktop运行run命令时显示错误HTTP code 500 并且错误大意是服务器拒绝访问 三、Docker Engine stopped/启动…...

微服务之间的调用关系

从数据的流向来区分有 1.直接调用&#xff08;推&#xff09;A直接B的接口直接将数据推送给B; 2.间接调用&#xff08;拉&#xff09;A先调B&#xff0c;B根据A给信息再去调A拉取数据&#xff1b; 感觉间接调用有点多此一举&#xff01;&#xff01;&#xff01; 直接调用的…...

Chinese Spelling Correction as Rephrasing Language Model(AAAI2024)

Chinese Spelling Correction as Rephrasing Language Model(AAAI2024) 一&#xff0e;概述 目前最先进的方法将CSC(Chinese Spelling Correction)作为序列标注任务&#xff0c;并在句子对上微调基于bert的方法。然而&#xff0c;我们注意到在将一个字符标注为另一个字符的过…...

DirectShow过滤器开发-写MP3音频文件过滤器(再写 写MP3)

下载本过滤器DLL 本过滤器将MP3音频流写到MP3音频文件。 过滤器信息 过滤器名称&#xff1a;写MP3_2 过滤器GUID&#xff1a;{AE46BC15-71E5-471C-8540-3B73094111EC} DLL注册函数名&#xff1a;DllRegisterServer 删除注册函数名&#xff1a;DllUnregisterServer 过滤器有1个…...

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《基于对等架构的虚拟电厂-配电网双层电碳协同调度模型》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…...

大数据-204 数据挖掘 机器学习理论 - 混淆矩阵 sklearn 决策树算法评价

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...