简单搭建express服务器

1. 初始化

npm init -y

2. 安装所需依赖

npm i express mongoose dotenv jsonwebtoken bcryptjs cookie-parser cloudinary socket.io

  • express:搭键路由、接收请求、发送响应
  • mongoose:操作 mongDB
  • dotenv:读取 .env
  • jsonwebtoken:JWT 签发/验证
  • bcryptjs:把明文密码转成哈希值
  • cookie-parser:读写 cookie
  • cloudinary:图片、文件上传
  • socket.io:实时聊天

npm i nodemon -D

将 nodemon 装成开发依赖,在开发环境中自启动

3. 修改 package.json 中的 scripts 和 type

json 复制代码
{
  ... ...
  "scripts": {
    "dev": "nodemon index.js"
  },
  ... ...
  "type": "module",
  ... ...
}

4. 新建 index.js 文件

js 复制代码
import express from 'express'
const app = express()

app.listen(5001, () => {
  console.log('server is running on port 5001');
})

5. 创建 src 及对应的文件夹

🎯因为上面修改了 index.js 的文件路径,所以 package.json 中也需要做对应的修改(修改后需要重启服务器)

6. 建立测试接口

index.js

js 复制代码
import authRoutes from './routes/auth.route.js'
import express from 'express'

const app = express()

app.use("/api/auth", authRoutes)

app.listen(5001, () => {
  console.log('server is running on port 5001');
})

auth.route.js

js 复制代码
import express from 'express'

const router = express.Router()

router.get('/getData', (req, res) => {
  res.send('getData route')
})

export default router

就可以去访问 http://localhost:5001/api/auth/getData

7. 使用 controller

如果将每个接口的处理逻辑都放到 route 中,会导致文件内容看起来很繁琐,所以将每个接口的处理逻辑都放置到 controller 中

index.js

js 复制代码
import express from 'express'
import { signup, login, logout } from '../controllers/auth.controller.js'

const router = express.Router()

router.post('/signup', signup)
router.post('/login', login)
router.post('/logout', logout)

export default router

auth.controller.js

js 复制代码
export const signup = (req, res) => {
  res.send('signup route')
}

export const login = (req, res) => {
  res.send('signup route')
}

export const logout = (req, res) => {
  res.send('signup route')
}
相关推荐
minji...4 分钟前
Linux 网络基础之传输层协议TCP(九)从内核源码的角度打通系统与网络之间的关系,套接字多态的体现
linux·运维·服务器·网络·网络协议·tcp/ip·http
Hui_AI7207 分钟前
抖店铺货自动化:7个核心功能的技术实现方案
大数据·运维·人工智能·自动化·产品运营·ai写作·内容运营
yyuuuzz16 分钟前
独立开发者线上服务运维的几点实践经验
运维·服务器·网络·云计算·aws
想唱rap18 分钟前
IO多路转接Select
运维·服务器·网络·数据库·sql·tcp/ip·mysql
樱桃花下的小猫24 分钟前
Rust 服务器倍率参数配置指南
服务器·云鸢互联·零门槛一键搭建·新手友好无技术门槛要求·腐蚀rust服务器一键开服·腐蚀rust·腐蚀rust低延迟稳定服务器
深藏bIue24 分钟前
MySQL切换服务器数据迁移记录
服务器·mysql·oracle
云智慧AIOps社区34 分钟前
轻帆云ITSM|制造业智能化转型,从流程重构看 IT 服务管理发展新趋势
运维·自动化·aiops·智能运维·itsm平台·it服务管理系统
闵孚龙35 分钟前
Claude Code 技能系统全解析:AI Agent 自定义能力、SKILL.md、MCP 扩展、上下文预算与企业级自动化落地
运维·人工智能·自动化
corpse201036 分钟前
CentOS Linux release 8.5.2111下的CVE-2026-31431 Linux内核提权漏洞处置
linux·运维·centos
我是苏苏37 分钟前
C#基础:Winform桌面开发中自定义组件UI、属性及事件
服务器·数据库·c#