获取剪切板内容
前置内容
- 【Nodejs express 连接Mysql】: https://www.hyz.cool/articles/207
- 【Nodejs express 连接 Redis】: https://www.hyz.cool/articles/208
- 【统一后端返回数据格式——云剪切板】: https://www.hyz.cool/articles/209
路由
const express = require("express");
const ClipboardController = express.Router();
const ClipboardService = require("../services/ClipboardService")
ClipboardController.get("/get",ClipboardService.getClipboard)
module.exports = ClipboardController;
js
数据库访问
import {Query} from "../services/MysqlService";
export const getClipboard = (id) => {
return Query("SELECT * FROM `tb_clipboard` WHERE `id` = ? ", [id])
}
js
返回数据格式
module.exports = class ClipboardDTO {
id;
content;
userId
platform;
status;
createTime;
updateTime;
constructor(data) {
this.id = data.id;
this.content = data.content;
this.userId = data.user_id || data.userId;
this.platform = data.platform;
this.status = data.status;
this.createTime = new Date(data.create_time || data.createTime).toLocaleString();
this.updateTime = new Date(data.update_time || data.updateTime).toLocaleString();
}
}
js
服务实现
const Result = require("../utils/Result");
const ClipboardDTO = require("../dtos/ClipboardDTO");
const validator = require("express-validator");
const ClipboardDao = require("../daos/ClipboardDao")
const TokenService = require("../services/TokenService")
export const getClipboard = [
validator.query("id", "剪切板id不能为空").isLength({min: 1}),
(req, res, next) => {
let validationResult = validator.validationResult(req)
if (!validationResult.isEmpty()) return Result.result(res, Result.invalidParams(validationResult.array()));
let {id, userId} = req.query
ClipboardDao.getClipboard(id).then(result => {
if (result.length < 1) return Result.result(res, Result.empty());
let clipboard = new ClipboardDTO(result[0])
if (clipboard.status === 1) return Result.result(res, Result.success(clipboard));
if ((userId + "") !== (clipboard.userId + "")) return Result.result(res, Result.noAuth());
TokenService.getLoginUser(req).then(userDTO => {
if (!userDTO) return Result.result(res, Result.notLogin());
if ((userDTO.id + "") !== (userId + "")) return Result.result(res, Result.noAuth())
return Result.result(res, Result.success(clipboard));
}).catch(err => {
return Result.result(res, Result.failed("检查登陆失败!"))
})
}).catch(err => {
console.log("list clipboard error ...", err)
return Result.result(res, Result.failed("获取用户剪切板数据失败!"))
})
}]
js