从零开始在Windows系统上搭建一个node.js后端服务项目

news2024/12/27 11:10:44

目录

一、下载node.js及配置环境

二、搭建node.js项目及安装express框架

三、集成nodemon,实现代码热部署

四、Express 应用程序生成器


一、下载node.js及配置环境

网上很多安装教程,此处就不再赘述了

版本信息

C:\Users\XXX>node -v
v20.15.0

C:\Users\XXX>npm -v
10.7.0

了解更多npm知识:npm 中文网 (nodejs.cn) 

二、搭建node.js项目及安装express框架

在任意位置创建一个项目文件夹,此处项目文件夹名为test(文件夹路径:D:\test)

以管理员身份打开windows命令行工具或powershell命令行工具(记住:必须以管理员身份打开,不要使用win+R的方式或者文件夹输入cmd的方式打开,否则后面安装express会失败)

左下角搜索框输入命令提示符,打开windows命令行工具(没有安装powershell,推荐使用这种方式)

打开powershell命令行工具(需要安装好powershell才可以打开)

打开命令行,进入创建的test项目文件夹

创建package.json,命令行输入下列命令

npm init 

name 项目名称
version 项目版本号
description 项目描述信息
entry point 项目入口文件
test command 项目启动时脚本命令
git repository Git仓库地址
keywords 关键词
author 作者

一路回车键

创建test项目的文件夹出现了pakage.json文件,打开查看里面的信息

安装express

npm install express --save

安装完成,如果是以管理员身份打开的命令行一般不会报错

安装好了后出现下列两个文件(夹)

package文件内容随之改变,由于程序主入口是index.js,所以要创建index.js文件,(文件后缀必须是js)

编辑index.js文件内容,为了快速,我们直接找到express官网,打开里面的示例

Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文档 | Express中文网 (expressjs.com.cn)icon-default.png?t=O83Ahttps://www.expressjs.com.cn/
package.json |npm 文档 (npmjs.com)icon-default.png?t=O83Ahttps://docs.npmjs.com/cli/v10/configuring-npm/package-json

复制Hello World示例 到index.js文件中

修改下打印日志的内容

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening on http://localhost:${port}`)
})

运行项目,输入命令node 入口文件.js

 咱这边的入口文件是index.js,稍微修改下

node index.js

启动成功后,浏览器访问服务,输入控制台输出的访问地址:http://localhost:3000

到这,就成功了

为了方便后续管理代码,新建一个名为src文件夹,将之前创建的index.js文件移入src中(index.js移动到src文件夹后,启动时要进入index.js的上一级文件夹再进行启动,D:\test\src> node index.js)

 三、集成nodemon,实现代码热部署

不需要热部署,可以不用跟着下面的步骤

安装nodemon,命令行输入:npm i nodemon -g

接下来开始实现热部署,修改pakage.json文件,修改两处:main入口文件和scripts对象

"main": "路径从点击进入项目的下一级开始,直到index.js文件"

{
  "name": "test",
  "version": "1.0.0",
  "description": "测试创建node项目",
  "main": "src/index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
	"start":"nodemon --watch src --watch config src/index.js"
  },
  "author": "小红",
  "license": "ISC",
  "dependencies": {
    "express": "^4.21.1"
  }
}

输入npm run start启动项目,终止项目ctrl+C

热部署的好处在于,不需要重启项目,刷新浏览器即可完成代码更新,如何判断是否成功热部署,一是命令行绿色部分执行代码,二是不重启项目,修改index.js项目的内容,保存后刷新浏览器查看显示内容是否变化,有变化则成功(修改端口则需要重启服务)

四、Express 应用程序生成器

照旧,第一步创建项目文件夹,管理员身份进入命令行,创建pakage.json文件,执行npm init

通过应用生成器工具 express-generator 可以快速创建一个应用的骨架。

你可以通过 npx (包含在 Node.js 8.2.0 及更高版本中)命令来运行 Express 应用程序生成器

npx express-generator

执行完npx express-generator命令就可以快速生成以下项目结构文件

由于项目结构是使用生成器生成的,需要安装项目内的依赖包,执行一下npm install

打开app.js(原默认是index.js,没有选择直接回车,而是在后面输入app.js后再回车,因此我的入口文件就改成了app.js),可以看到,文件内是没有配置端口,以及启动打印的数据的,在这里可以自行手动配置下(app.get()或app.set()需要在var app = express();后面使用)

pakage.json

启动项目npm run start

没有设置打印日志是这样的

实现代码热部署

1.项目安装nodemon,执行npm install nodemon --save

2.优化目录结构,创建src文件夹,将app.js移入

3.修改app.js文件内容,app.js引用路由文件不再是同级关系,二是上一级文件夹,因此将.改为..

4.修改pakage.json文件的scripts对象start的配置,监听src目录

启动项目后,任意修改app.js文件在浏览器上显示的内容

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言基础学习(Go安装配置、基础语法)

一、简介及安装教程 1、为什么学习Go? 简单好记的关键词和语法;更高的效率;生态强大;语法检查严格,安全性高;严格的依赖管理, go mod 命令;强大的编译检查、严格的编码规范和完整的…

微信小程序应用echarts和二维表的结合

1.刚进入页面时,小馋猫图片的位置是由echarts图表的,这个你别管,我有我的难处,是由二维表组成的 当滑动鼠标时,会出现这种情况,echarts图表随着鼠标滑动,位置不固定 3.解决问题,因为…

用manim实现内燃机引擎的活塞,连杆和曲柄的模拟运动【上】

一,介绍 内燃机引擎是现代机械设备中一种非常重要的动力装置,其核心部件包括活塞、连杆和曲柄。活塞在气缸内做往复运动,通过连杆与曲柄相连,将往复运动转化为旋转运动,驱动机械设备正常工作。 活塞是内燃机引擎的关键…

VSCode中的TypeScript教程

TypeScript 是JavaScript的类型化超集,可编译为纯JavaScript。它提供了类、模块和接口来帮助您构建健壮的组件。 安装 TypeScript 编译器 Visual Studio Code 包括 TypeScript 语言支持,但不包括 TypeScript 编译器tsc。您需要在全局或工作区中安装Typ…

【C语言】预编译+编译+汇编+链接

文章目录 翻译环境和运行环境翻译环境预处理(预编译)编译汇编链接 运行环境 接下来是预处理阶段的一系列知识,认真阅读哦预定义符号#define定义常量#define定义宏带有副作用的宏参数宏替换的规则宏函数的对比#和##命名约定#undef命令行定义条…

C++初阶(五)--类和对象(中)--默认成员函数

目录 一、默认成员函数(Default Member Functions) 二、构造函数( Constructor) 1.构造函数的基本概念 2.构造函数的特征 3.构造函数的使用 无参构造函数 和 带参构造函数 注意事项: 4.默认构造函数 隐式生成的…

恢复已删除文件的 10 种安卓数据恢复工具

由于我们现在在智能手机上存储了大量重要文件,因此了解数据恢复工具变得很重要。您永远不会知道什么时候需要使用 安卓 数据恢复工具。 由于不乏 Windows 数据恢复工具,因此从崩溃的计算机中恢复文件很容易。但是,当涉及到从 安卓恢复数据时…

大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

Go语言Gin框架的常规配置和查询数据返回json示例

文章目录 路由文件分组查询数据库并返回jsonservice层controller路由运行效果 启动多个服务 在 上一篇文章《使用Go语言的gorm框架查询数据库并分页导出到Excel实例》 中主要给大家分享了较多数据的时候如何使用go分页导出多个Excel文件并合并的实现方案,这一篇文章…

unity学习-全局光照(GI)

在全局光照(Lighting)界面有两个选项 Realtime Light(实时光照):在项目中会提前计算好光照以及阴影的程序,当你需要调用实时全局光照的时候会将程序调用出来使用 Mixed Light(烘焙光照&#x…

如何利用kafka实现高效数据同步?

在我们之前的文章有详细介绍过Kafka的结构、特点和处理方式。具备告诉处理能力的kafka被利用在数据同步和数据传输上,今天来说下kafka是怎么实现高效的数据同步和传输。 一、可靠的数据传输 1. 持久性保证:Kafka 将数据持久化到磁盘上,即使在…

汽车管理系统——主界面制作

目录 主界面需要有什么?然后要做什么?添加两个主菜单(声明)下一步应该干什么?能够跳转到文件有哪几个动作?动作如何声明?为什么用选择声明指针,不选择直接声明这个对象? …

算力基础篇:从零开始了解算力

什么是算力 算力即计算能力(Computing Power),狭义上指对数字问题的运算能力,而广义上指对输入信息处理后实现结果输出的一种能力。虽然处理的内容不同,但处理过程的能力都可抽象为算力。比如人类大脑、手机以及各类服…

git 与 github 同步

1.配置账户 git config --global user.name "你的用户名" git config --global user.email "你的邮箱" 2.输入命令创建ssh key $ ssh-keygen -t rsa -C "邮箱" //你自己注册GitHub的邮箱 输入命令之后提示输入密码,回车直到出现…

C++类(3)

1.如果一个类什么成员都没有,简称空类 但是空类真的什么都没有吗? 并不是,任何类什么都不写,编译器会自动生成以下6个默认成员函数 1.构造函数 class Date { public:void Init(int year, int month, int day){_year year;_mo…

kubernetes简介及安装部署

目录 一、kubernetes简介 1、k8s的概念 2、k8s各个组件及用途 3、k8s各组件之间的调用关系 4、k8s常用名词概念 5、k8s的分层架构 二、kubernetes安装部署 1、k8s集群环境搭建 2、本地解析、swap禁用 3、安装docker 4、复制harbor仓库中的证书并启动docker 5、设定d…

基于Cesium.js的可视化大屏,效果绝对的震撼!

基于 Cesium.js 的可视化大屏确实能带来震撼的效果。Cesium.js 强大的三维渲染能力,能够逼真地呈现地理信息和各种数据模型。 在大屏上,广袤的地形地貌、精细的建筑模型以及动态的数据展示,仿佛将观众带入一个全新的虚拟世界。无论是用于地理…

网络分析仪——提升网络性能的关键工具

目录 什么是网络分析仪? 1. 实时流量监控 2. 历史数据回溯分析 3. 网络性能关键指标监测 4. 可视化界面与报告生成 总结 在当今的数字化世界,网络的稳定性和性能直接影响企业的运营效率。网络拥堵、延迟和丢包等问题会导致用户体验的下降&#xff…

“屏” 步青云:轻松开启录屏功能,Windows 实例教学

你知道 Windows 的录屏功能怎么打开吗?在当今数字化时代,录屏功能成为了许多人工作、学习和娱乐中的得力助手。无论是制作教学视频、记录游戏精彩瞬间,还是为线上会议留存资料,掌握录屏技能都至关重要。今天我们不仅会介绍 Window…

springboot智能网上问诊系统-计算机毕业设计源码99634

摘要 智能网上问诊系统作为医疗健康领域的重要应用之一,为患者提供了便捷的医疗服务途径。本研究旨在基于Springboot框架设计和实现一套智能网上问诊系统,结合医疗专业知识,实现患者与医生之间的在线咨询和诊疗服务。 通过对Springboot框架…