简单搭建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')
}
相关推荐
码龄3年 审核中34 分钟前
Linux record 03
java·linux·运维
星驰云1 小时前
记一次CentOS 硬盘损坏无法启动修复教程
linux·运维·centos
人工智能训练1 小时前
windows系统中的docker,xinference直接运行在容器目录和持载在宿主机目录中的区别
linux·服务器·人工智能·windows·ubuntu·docker·容器
阿拉斯攀登1 小时前
docker介绍
服务器·docker
ALex_zry1 小时前
高并发系统渐进式改造技术调研报告:策略、架构与实战
java·运维·架构
wljt1 小时前
Docker常用命令
运维·docker·容器
木童6621 小时前
Nginx 深度解析:反向代理与负载均衡、后端Tomcat
linux·运维·nginx
CheungChunChiu1 小时前
Android 系统中的 NTP 服务器配置与选择逻辑详解
android·运维·服务器
草莓熊Lotso2 小时前
红黑树从入门到进阶:4 条规则如何筑牢 O (logN) 效率根基?
服务器·开发语言·c++·人工智能·经验分享·笔记·后端
0wioiw02 小时前
跨网络互联技术(Nginx反向代理)
服务器·网络·nginx