简单搭建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')
}
相关推荐
owCode3 小时前
Linux中的管道
linux·运维·服务器
北亚数据恢复3 小时前
服务器数据恢复—raid5阵列硬盘离线搞崩溃,分区数据恢复案例来袭
运维·服务器
neo_will_mvp3 小时前
服务器bmc功能
linux·运维·服务器
Ryan ZX3 小时前
openEuler 22.03-Docker离线安装教程
运维·docker·容器
慕慕涵雪月光白3 小时前
在Ubuntu系统上安装英伟达(NVIDIA)RTX 3070 Ti的驱动程序
linux·运维·人工智能·ubuntu
吉普赛的歌3 小时前
【阿里云】ECS服务器重启需要注意的事项
运维·服务器·阿里云
无聊的小坏坏3 小时前
基于 TCP 线程池服务器封装 HTTP 服务器:从协议解析到适配落地
服务器·tcp/ip·http
做运维的阿瑞4 小时前
CentOS 7 停止维护后 YUM 源配置速查手册
linux·运维·centos
老黄编程4 小时前
08-ubuntu如何获取发行版代号
linux·运维·ubuntu