Nodejs连接MongoDB实现一些小插件功能

241 阅读1分钟

Nodejs连接MongoDB实现一些小插件功能

cdkey生成

const express = require('express');
const random = require('string-random');
const MongoClient = require('mongodb').MongoClient;
const {addDays} = require("date-fns");
const app = express();
const databaseConfig={
    url: "mongodb://user60031264:******@dds-bp18g2be9hptvwwm-pub.mongodb.rds.aliyuncs.com:3717/admin",
}

//设置跨域访问
app.use(function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
    res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
    if (req.method == 'OPTIONS') {
        res.send(200); /*让options请求快速返回*/
    } else {
        next();
    }
})


function mongoConnect(){
    return new Promise((resolve,reject)=>{
        let mongoClient = new MongoClient(databaseConfig.url)
        mongoClient.connect(function (err,db){
            if(err){
                console.log('数据库连接失败')
                reject(err);
            }
            console.log('数据库连接成功')
            resolve(db);
        })
    })
}
mongoConnect(databaseConfig.url).then((db)=>{
    listenFunctions(db);
}).catch((err)=>{
    console.log(err);
})

function listenFunctions(db){
    app.get('/generateCdkey',function (req,resp){
        let len=req.query.len||32;
        let expireDay=req.query.expireDay||7
        let cdkey=random(len);
        let expireDate=addDays(new Date(),expireDay)
        let obj={
            cdkey:cdkey,
            expireDate:expireDate
        }
        let dbo = db.db("tools");
        dbo.collection("cdkey").insertOne(obj, function (err) {
            if (err) throw err;
            console.log("cdkey插入成功");
            resp.send(cdkey)
        });
    });
}

app.listen(8889, 'localhost', function() {
    console.log('服务器开启成功');
})