Todo-NodeJS-API 项目教程

Todo-NodeJS-API 项目教程

todo-nodejs-apiNodeJS全栈开发之后端接口技术栈基于Node.js+Express+Mysql实现RESTFUL API项目地址:https://gitcode.com/gh_mirrors/to/todo-nodejs-api

1. 项目的目录结构及介绍

todo-nodejs-api/
├── config/
│   ├── db.js
│   ├── jwt.js
│   └── server.js
├── controllers/
│   ├── authController.js
│   ├── todoController.js
│   └── userController.js
├── models/
│   ├── todoModel.js
│   └── userModel.js
├── routes/
│   ├── authRoutes.js
│   ├── todoRoutes.js
│   └── userRoutes.js
├── middleware/
│   ├── authMiddleware.js
│   └── errorMiddleware.js
├── tests/
│   ├── auth.test.js
│   ├── todo.test.js
│   └── user.test.js
├── .env
├── .gitignore
├── app.js
├── package.json
└── README.md

目录结构介绍

  • config/: 包含项目的配置文件,如数据库配置、JWT配置和服务器配置。
  • controllers/: 包含处理业务逻辑的控制器文件。
  • models/: 包含数据库模型的定义文件。
  • routes/: 包含路由定义文件。
  • middleware/: 包含中间件文件,如身份验证和错误处理。
  • tests/: 包含单元测试文件。
  • .env: 环境变量配置文件。
  • .gitignore: Git忽略文件配置。
  • app.js: 项目的启动文件。
  • package.json: 项目的依赖和脚本配置文件。
  • README.md: 项目说明文档。

2. 项目的启动文件介绍

app.js

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const dotenv = require('dotenv');

dotenv.config();

const app = express();

// 中间件
app.use(bodyParser.json());

// 路由
const authRoutes = require('./routes/authRoutes');
const todoRoutes = require('./routes/todoRoutes');
const userRoutes = require('./routes/userRoutes');

app.use('/api/auth', authRoutes);
app.use('/api/todos', todoRoutes);
app.use('/api/users', userRoutes);

// 数据库连接
mongoose.connect(process.env.MONGO_URI, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
}).then(() => {
    console.log('MongoDB connected');
}).catch(err => {
    console.log(err);
});

// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});

启动文件介绍

  • 引入依赖: 引入Express、Mongoose、Body-parser等依赖。
  • 配置环境变量: 使用dotenv加载环境变量。
  • 创建Express应用: 初始化Express应用。
  • 使用中间件: 使用body-parser处理JSON请求体。
  • 定义路由: 引入并使用路由文件。
  • 连接数据库: 使用Mongoose连接MongoDB数据库。
  • 启动服务器: 监听指定端口启动服务器。

3. 项目的配置文件介绍

config/db.js

const mongoose = require('mongoose');

const connectDB = async () => {
    try {
        await mongoose.connect(process.env.MONGO_URI, {
            useNewUrlParser: true,
            useUnifiedTopology: true,
        });
        console.log('MongoDB connected');
    } catch (err) {
        console.error(err.message);
        process.exit(1);
    }
};

module.exports = connectDB;

config/jwt.js

const jwt = require('jsonwebtoken');

const generateToken = (userId) => {
    return jwt.sign({ id: userId }, process.env.JWT_SECRET, {
        expiresIn: '1d',
    });
};

module.exports = generateToken;

config/server.js

const express =

todo-nodejs-apiNodeJS全栈开发之后端接口技术栈基于Node.js+Express+Mysql实现RESTFUL API项目地址:https://gitcode.com/gh_mirrors/to/todo-nodejs-api

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司莹嫣Maude

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值