使用Express+Node.js搭建网站

Express是一个基于Node.js平台的快速、开放、极简的Web开发框架。它的作用是专门用来创建Web服务器,与Node.js内置的http模块功能相似,但更为简便和高效。

Express中文官网:Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文档 | Express中文网

Express 4.x API 参考文档:

Express 4.x - API Reference - Express中文文档 | Express中文网

在安装Express前,先在项目所在文件夹初始化项目:

bash 复制代码
node init -y

下载Express框架:

bash 复制代码
npm install express --save

编写index.js文件(也可以叫其他名字,但需要再package.json文件中进行更改),构建HTTP服务器,使用:8080端口(也可以使用其他端口):

javascript 复制代码
const express = require('express');
const app = express();

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

app.listen(8080, () => {
  console.log('Example app listening on port 8080!');
});

在终端输入命令进行测试:

javascript 复制代码
node src/index.js

运行成功后在浏览器打开: http://localhost:8080

项目结构:

修改package.json文件,使用Nodemon(Nodemon会监视指定的文件夹或文件,一旦检测到文件发生更改,它就会自动重启应用程序)监听index.js文件:

javascript 复制代码
"scripts": {
    "dev": "nodemon index.js"
}

下载Nodemon:

bash 复制代码
npm install nodemon

完整版package.json:

javascript 复制代码
{
  "name": "exapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "nodemon index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.19.2"
  }
}

使用npm run dev方式可以在修改index.js文件后可刷新页面:

bash 复制代码
npm run dev

随后在index.js中定义一个常量port,其功能是从环境变量中获取端口号,如果该环境变量未设置或为空,则默认使用8080作为端口号。这种做法允许开发者在部署应用程序时灵活地指定端口,而在本地开发或测试时可以使用默认的8080端口。

javascript 复制代码
const port =  process.env.PORT || 8080;

修改完的index.js:

javascript 复制代码
const express = require('express');
const app = express();
const port =  process.env.PORT || 8080;

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

app.listen(port, () => {
  console.log(`Example app listening on port http://localhost:${port}`);
});
相关推荐
Juchecar41 分钟前
AI教你常识之 ESM + Express + EJS + 表单POST + CSV文件
node.js
xiaopengbc1 小时前
在Webpack中,如何在不同环境中使用不同的API地址?
前端·webpack·node.js
Gogo8161 小时前
java与node.js对比
java·node.js
王蛋1112 小时前
前端工作问题或知识记录
前端·npm·node.js
Swift社区3 小时前
为什么 socket.io 客户端在浏览器能连上,但在 Node.js 中报错 transport close?
javascript·node.js
萌萌哒草头将军8 小时前
Node.js v24.8.0 新功能预览!🚀🚀🚀
前端·javascript·node.js
Adorable老犀牛8 小时前
可遇不可求的自动化运维工具 | 2 | 实施阶段一:基础准备
运维·git·vscode·python·node.js·自动化
若无_9 小时前
npm 与 pnpm 深度对比:从依赖管理到实际选型
npm·node.js
GISer_Jing9 小时前
Next系统学习(二)
前端·javascript·node.js
BillKu9 小时前
vue3 中 npm install mammoth 与 npm install --save mammoth 的主要区别说明
前端·npm·node.js