node mongodb 写接口part

目录

在这里插入图片描述

连接数据库

1. config/dbconfig.js

const Mongoose = require('mongoose')
const url = 'mongodb://localhost:27017'
const dbName = 'youth'
const connectUrl = url + '/'+ dbName
// 建立连接
Mongoose.connect(connectUrl, { useNewUrlParser: true, useUnifiedTopology: true })
// 连接成功
Mongoose.connection.on('connected', function () {
    console.log('数据库连接成功!连接地址是:' + connectUrl)
})
// 连接失败
Mongoose.connection.on('error', function (err) {
    console.log('数据库连接异常!' + err)
})
// 断开连接
Mongoose.connection.on('disconnectied', function () {
    console.log('断开数据库的连接!')
})

module.exports = {
    Mongoose
}

2. app.js

//扔上去就好了
require('./config/dbconfig');

数据表连接:model层

//1.导入配置文件
var Mongoose = require('mongoose');
//2.导入Schema
const Schema = Mongoose.Schema

//3.定义Schema:要和数据库中的集合对应(Schema属性对象集合中的键)
const UserSchema = new Schema({
    userId: { type: String, unique: true },
    userName: { type: String, unique: true },
    createTime: { type: String },
    email: { type: String, unique: true },
    passWord: { type: String },
    roleId: { type: String },
})

//4.导出model,可以使用model操作数据库(表名(要大写,报错末尾+s),schema名,集合名)
module.exports = Mongoose.model('Users', UserSchema)

数据库操作(dao层)

const UserModel = require('../../model/userModel')
// 增
exports.insertUser = async function (data) {
    return await UserModel.create(data)
}
// 删
exports.removeUser = async function (id) {
    return await UserModel.delete({
        userId: id
    })
}
// 改
exports.modifyUser = async function (data) {
    return await UserModel.updateOne(
        { userId: data.userId },
        { $set: { 
            passWord: data.passWord, 
            roleId: data.roleId, 
        } }
    )
}
// 查
exports.queryAll = async function (data) {
    return await UserModel.find(data)
}

数据操作(service层)

const userDao = require('../dao/crud/userDao')
exports.addUser = function (req, res) {
    console.log(req)
    let date = new Date()
    //let str = date.getFullYear()+
    let data = {
        userId: 'user-' + date.getTime(),
        createTime: new Date().toLocaleString(),
        ...req.query
    }
    userDao.insertUser(data).then(result => {   
        res.send({
            code: 2000,
            info: result
        })
        console.log(result)
    }).catch(e => {
        res.send(e)
    })
}

接口(router层)

1. route/user.js

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function (req, res, next) {
  res.send('respond with a resource');
});

const userService = require('../service/userService')

router.get('/addUser', userService.addUser);


//增加
// router.post('/addUser', userService.addUser)


module.exports = router;

2.注册(app.js)

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/user');
app.use('/', indexRouter);
app.use('/user', usersRouter);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值