使用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}`);
});
相关推荐
漂流瓶jz8 小时前
让数据"流动"起来!Node.js实现流式渲染/流式传输与背后的HTTP原理
前端·javascript·node.js
陪我一起学编程10 小时前
关于nvm与node.js
vue.js·后端·npm·node.js
程序猿小D10 小时前
第22节 Node.js JXcore 打包
开发语言·人工智能·vscode·node.js·c#
2401_8784545310 小时前
node.js的初步学习
学习·node.js
古韵14 小时前
alova 3.3.0 发布:开发体验提升的重大更新
node.js·nuxt.js·next.js
不想说话的麋鹿15 小时前
《NestJS 实战:RBAC 系统管理模块开发 (一)》
前端·node.js·全栈
Lstmxx17 小时前
Electron:使用数据流的形式加载本地视频
前端·electron·node.js
LeeAt18 小时前
npm:详细解释前端项目开发前奏!!
前端·node.js·html
chxii18 小时前
1.6 http模块nodejs 对比 go
http·node.js
月舞之剑19 小时前
由nodejs gzip压缩引起的性能实验测试
node.js