Windows安装Node.js+Express+Nodemon

发布于:2025-04-08 ⋅ 阅读:(45) ⋅ 点赞:(0)

Windows安装Node.js+Express+Nodemon

陈拓 2025/4/3-2025/4/4

1. 概述

在《Node.js+Express+Nodemon+Socket.IO构建Web实时通信》

https://blog.csdn.net/chentuo2000/article/details/134651743?spm=1001.2014.3001.5502

一文中我们介绍了在Linux系统上的安装过程,本文我们在在Windows操作系统上安装Node.js、Express和Nodemon。

2. 安装Node.js

2.1 安装

  • 打开你的浏览器,访问Node.js官网

https://nodejs.org/zh-cn

  • 下载Node.js(LTS)

LTS(Long Term Support)版本是推荐的稳定版本,适合生产环境。

2025年4月3日,下载文件node-v22.14.0-x64.msi

  • 安装Node.js

双击.msi安装文件运行安装程序。

按照安装向导的指示进行操作。你可以选择默认设置,或者根据需要自定义安装路径和组件。

  • 完成安装

完成安装后,你可以在命令提示符(CMD)或PowerShell中输入node -v和npm -v来检查Node.js和npm(Node包管理器)是否正确安装。如果显示版本号,则表示安装成功。

2.2 测试

安装好node.js后可以进行以下操作进行进一步的测试。

2.2.1 以交互方式运行Javascript代码

在命令行输入node,再输入js命令:

2.2.2 以node *.js的方式运行js文件
  • 进入项目目录

E:\ct\nodejs

  • 写一个Javascript脚本文件test.js

notepad test.js

var num1 = 10;
var num2 = 20;
console.log(num1 + num2);

  • 运行test.js:

node test.js

2.3 Node.js建立web服务器

我们用Javascript写一个Web服务器程序,在node.js上运行,就启动了一个Web服务。

2.3.1 初始化package

凡是使用npm管理的项目,都需要初始化一个package.json文件。 ​

可以使用以下命令来初始化一个包(package就是应用程序):

npm init -y

当执行这个命令时,会生成一个npm的默认配置文件package.json。

这个默认配置文件package.json是可以更改的。

可以通过类似下面这样的形式来修改npm的默认配置:

npm config set init.author.name YOUR_NAME

npm config set init.author.email YOUR_EMAIL

当执行以上命令之后,之后再执行npm init命令时,package.json的作者姓名和邮箱都会初始化为我们设定的值。

也可以直接修改

notepad package.json

其中:

server.js是下面我们要创建的Web服务器文件。

scripts参数用于快捷启动。web-server就代表node server.js

2.3.2 Web服务器server.js文件代码
const http = require('http');

const hostname = 'localhost';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

在此代码示例中,我们创建了一个HTTP服务器,并在该服务器上监听3000端口。当服务器收到请求时,它将在浏览器中返回“Hello World”

2.3.3 启动服务器

node server.js

或者

npm run web-server

2.3.4 从浏览器访问服务器

3. 使用Express

Express官网:http://www.expressjs.com

Express是基于Node.js平台的快速、开放、极简的Web开发框架。

为什么要使用Express?

当我们创建服务器时,由Node.js提供的http内置模块使用复杂,开发效率低。

Express对node.js的http模块做了封装,通过Express可以使用更少的代码来实现Node.js的功能,可以极大提高开发效率。

3.1 安装Express

npm install express –-save

--save参数表示自动修改package.json文件,自动添加依赖项。

express安装到了node_modules目录下。

通常情况下,在使用 npm 或 yarn 等包管理工具安装非全局包时,默认会将这些包安装到项目根目录下的 node_modules 文件夹中。

3.2 使用express访问html静态页面

在上一节的例子中,对于浏览器的请求响应是写在server.js中的,对于复杂的网页我们写成html文件,下面用一个简单的例子演示。

在E:\ct\nodejs目录下面再创建目录public。

mkdir public

public目录通常被称为托管目录‌。在Node.js项目中,html、css、js、图片等静态资源都放在public目录下面。这些静态资源可以通过Express框架的express.static()中间件进行托管和访问‌

  • 在目录public中创建一个页面index.html

notepad public/index.html

<html>
<p>Hello World!</p>
</html>
  • 写服务器js文件

服务器的js文件还放在项目目录E:\ct\nodejs下面。

notepad server_express.js

写代码:

// server_express.js
const express = require('express');	
const path = require('path');
const app = express();

app.use(express.static(path.join(__dirname, 'public')));

const hostname = 'localhost';
const port = 3000;

app.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

3.3 express相关代码说明

代码:

app.use(express.static(path.join(__dirname, 'public')));

说明:

在Windows系统中,我的index.html路径是E:\ct\nodejs\public\index.html,当客户端请求静态资源http://localhost:3000/时,app.use()先调用express.static(path.join(__dirname, 'public'))指定托管目录E:\ct\nodejs\public,再从目录中默认查找index.html,如果找到,返回该文件内容;否则返回 404。

1. __dirname

  • __dirname是Node.js的全局变量,表示当前执行脚本所在的路径。
  • 例如,如果当前脚本位于E:\ct\nodejs\server.js,那么__dirname 的值将是 E:\ct\nodejs。

2. path.join(__dirname, 'public')

  • path.join() 是Node.js的path模块提供的方法,用于跨平台地拼接路径。
  • path.join(__dirname, 'public') 会生成一个绝对路径,例如 E:\ct\nodejs\public,Express将请求路径 / 映射到该目录。
  • 在 Windows 系统中,生成的路径分隔符是反斜杠(\),但在URL中路径分隔符是正斜杠(/)。Express内部会自动处理这种差异,确保路径匹配正确。

3. express.static()

  • express.static()是Express框架内置的中间件,用于托管静态文件(如 HTML、CSS、JS、图片等)。
  • 当客户端请求静态资源时,例如,当客户端请求 http://localhost:3000/ 时,express.static() 会尝试在 E:\ct\nodejs\public 目录中查找默认文件,通常是index.html,s例如E:\ct\nodejs\public\index.html。
  • 如果找到匹配的文件,Express 会返回该文件的内容;如果没有找到匹配的文件,Express 会返回404错误。

4. app.use()

  • app.use()是Express提供的方法,用于注册中间件。
  • 在这个例子中,app.use(express.static(path.join(__dirname, 'public')))注册了express.static中间件,使其能够处理所有请求。
  • 可以用多个app.use()方法注册多个中间件,构成中间件执行链。
  • 当客户端发起请求(如 http://localhost:3000/)时,Express会按照中间件的注册顺序依次调用已注册的中间件。
  • 如果express.static中间件处理了请求并返回了文件内容,后续的中间件将不会被调用;如果express.static中间件没有找到匹配的文件,请求会继续传递给后续的中间件。

3.4 启动服务器

node server_express.js

从浏览器访问服务器:

4. 使用Nodemon

为什么要使用Nodemon?

在编写调试Node.js项目的时候,如果修改了项目的代码,需要手动结束node.js进程,停止服务,然后再重新启动,非常繁琐。

Nodemon基于Node.js开发,是一个监视文件变化并自动重启应用程序的工具,能够监听项目中文件的变动,当代码被修改后,nodemon会帮我们自动重启项目,极大方便了开发和调试。

4.1 安装Nodemon

npm install -g nodemon

-g表示全局范围安装。

-g: 为 --global 的缩写,表示全局安装。全局安装指的是针对整个系统,而不是针对某一个项目,安装的包或者模块可以在系统中的任何地方引用。

4.2 使用Nodemon

4.2.1 监视运行中程序的改变
  • 启动应用程序

nodemon server_express.js

这会启动你的应用程序,并监视相关文件的变化。

现在我们在修改server_express.js时就不用重新启动Node.js了。

例如,在打开一个命令窗口,用下面的命令修改server_express.js的代码:

notepad server_express.js

将端口设置:const port = 3000;

改为:const port = 4000;

在nodemon的运行窗口中可以看到server_express.js自动重启了:

4.2.2 更多的选项
  • 指定监视文件的扩展名

nodemon --ext js,html,css app.js

通过--ext参数,你可以指定Nodemon监视的文件扩展名。

  • 忽略特定文件或文件夹

nodemon --ignore public/ app.js

使用--ignore参数可以忽略指定的文件或文件夹。

  • 监视子文件夹

nodemon --recursive app.js

通过--recursive参数,Nodemon可以监视子文件夹中的文件变化。

  • 在控制台输出详细日志

nodemon --verbose app.js

使用--verbose参数可以打印出更多的日志信息。


网站公告

今日签到

点亮在社区的每一天
去签到