简单搭建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')
}
相关推荐
全栈工程师修炼指南8 分钟前
Nginx | stream 四层反向代理:SSL、PREREAD 阶段模块指令浅析与实践
运维·网络·网络协议·nginx·ssl
威迪斯特1 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.1 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔1 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
m0_694845571 小时前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
ONE_SIX_MIX1 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞051 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*1 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
春日见1 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡2 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器