新建项目。

express-generator 应用程序生成器

1、安装 mongoose npm i mongoose@6.11.2
2、启动 mogodb 服务:文件路径下执行 cmd(输入 mongod)
3、连接 mongodb 数据库

一、创建 config 文件
在这里插入图片描述

// 配置文件
module.exports = {
    DBHOST: '127.0.0.1',
    DBPORT: 27017,
    DBNAME: 'mydata',
}

二、创建 db 文件
在这里插入图片描述

// success 数据库连接成功的回调
// error 数据库连接失败的回调
module.exports = function (success, error) {
    // 判断 error 为其设置默认值
    if (typeof error !== 'function') {
        error = () => {
            console.log('连接失败...')
        }
    }

    // 1、安装 mongoose
    // 2、导入 mongoose
    const mongoose = require('mongoose')
    // 导入配置文件
    const { DBHOST, DBPORT, DBNAME } = require('../config/config')

    // 如果连接成功后出现 strictQuery 的警告,设置 strictQuery 为 true 即可,均无任何影响。
    mongoose.set('strictQuery', true);

    // 3、连接 mongodb 服务                           数据库的名称
    mongoose.connect(`mongodb://${DBHOST}:${DBPORT}/${DBNAME}`);

    // 4、设置回调
    // 设置连接成功的回调  官方推荐 once 事件回调函数只执行一次,on会自动重连。
    mongoose.connection.once('open', () => {
        success();
    });

    // 设置连接错误的回调
    mongoose.connection.on('error', () => {
        error();
    });

    // 关闭数据库连接 (项目运行过程中,不会添加该代码)
    mongoose.connection.on('close', () => {
        console.log('连接关闭');
    });
}

三、创建接口文档模型
在这里插入图片描述

// 导入 mongoose
const mongoose = require('mongoose');
// 创建文档的结构对象
// 设置集合中文档的属性以及属性值的类型
let AuthSchema = new mongoose.Schema({
    username: {
        type: String,
        required: true
    },
    password: {
        type: Number,
        required: true
    }
})

// 创建模型对象     对文档操作的封装对象   mongoose 会使用集合名称的复数,创建集合(如:book将成为books)
let AuthModel = mongoose.model('auth', AuthSchema);



// 暴露模型对象
module.exports = AuthModel;

四、创建 api 路由文件
在这里插入图片描述

const { render } = require('ejs');
var express = require('express');
var router = express.Router();

// 导入 moment
const AuthModel = require('../../models/authModel');

/* 记账本列表 */
router.post('/auth', function (req, res, next) {
    // 插入数据库
    AuthModel.create({
        ...req.body,
    }, (err, data) => {
        if (err) {
            console.log('err----',err)
            res.json({
                // 响应编号
                code: '1002',
                // 响应的信息
                msg: '创建失败~~',
                // 响应的数据
                data: data
            })
            return;
        }
        res.json({
            // 响应编号
            code: '0000',
            // 响应的信息
            msg: '添加成功',
            // 响应的数据
            data: data
        })
    })
});

module.exports = router;


五、修改 app.js 文件
在这里插入图片描述

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var authRouter = require('./routes/api/auth');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/api', authRouter);

// catch 404 and forward to error handler
app.use(function (req, res, next) {
  next(createError(404));
});

// error handler
app.use(function (err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

六、Apifox 测试接口
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值