简单搭建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')
}
相关推荐
森鹿2 天前
express中间件原理以及大致实现
前端·express
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB7 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
zzzzzz3108 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode8 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220709 天前
如何搭建本地yum源(上)
运维
大树8812 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai