开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 0

lspCode/egg-RESTfulAPI

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
upload.js 5.40 KB
一键复制 编辑 原始数据 按行查看 历史
const fs = require('fs')
const path = require('path')
const awaitWriteStream = require('await-stream-ready').write
const sendToWormhole = require('stream-wormhole')
const Service = require('egg').Service
class UploadService extends Service {
async create(payload) {
return this.ctx.model.Attachment.create(payload)
}
// destroy======================================================================================================>
async destroy(_id) {
const { ctx, service } = this
const attachment = await ctx.service.upload.find(_id)
if (!attachment) {
ctx.throw(404, 'attachment not found')
}else{
const target = path.join(this.config.baseDir, 'app/public/uploads', `${attachment._id}${attachment.extname}`)
fs.unlinkSync(target)
}
return ctx.model.Attachment.findByIdAndRemove(_id)
}
// update======================================================================================================>
async updatePre(_id) {
const { ctx, service } = this
const attachment = await ctx.service.upload.find(_id)
if (!attachment) {
ctx.throw(404, 'attachment not found')
}else{
const target = path.join(this.config.baseDir, 'app/public/uploads', `${attachment._id}${attachment.extname}`)
fs.unlinkSync(target)
}
return attachment
}
async extra(_id, values) {
const { ctx, service } = this
const attachment = await ctx.service.upload.find(_id)
if (!attachment) {
ctx.throw(404, 'attachment not found')
}
return this.ctx.model.Attachment.findByIdAndUpdate(_id, values)
}
async update(_id, values) {
return this.ctx.model.Attachment.findByIdAndUpdate(_id, values)
}
// show======================================================================================================>
async show(_id) {
const attachment = await this.ctx.service.upload.find(_id)
if (!attachment) {
this.ctx.throw(404, 'attachment not found')
}
return this.ctx.model.Attachment.findById(_id)
}
// index======================================================================================================>
async index(payload) {
// 支持全部all 无需传入kind
// 图像kind = image ['.jpg', '.jpeg', '.png', '.gif']
// 文档kind = document ['.doc', '.docx', '.ppt', '.pptx', '.xls', '.xlsx', '.csv', '.key', '.numbers', '.pages', '.pdf', '.txt', '.psd', '.zip', '.gz', '.tgz', '.gzip' ]
// 视频kind = video ['.mov', '.mp4', '.avi']
// 音频kind = audio ['.mp3', '.wma', '.wav', '.ogg', '.ape', '.acc']
const attachmentKind = {
image: ['.jpg', '.jpeg', '.png', '.gif'],
document: ['.doc', '.docx', '.ppt', '.pptx', '.xls', '.xlsx', '.csv', '.key', '.numbers', '.pages', '.pdf', '.txt', '.psd', '.zip', '.gz', '.tgz', '.gzip' ],
video: ['.mov', '.mp4', '.avi'],
audio: ['.mp3', '.wma', '.wav', '.ogg', '.ape', '.acc']
}
let { currentPage, pageSize, isPaging, search, kind } = payload
let res = []
let count = 0
let skip = ((Number(currentPage)) - 1) * Number(pageSize || 10)
if(isPaging) {
if(search) {
if (kind) {
res = await this.ctx.model.Attachment.find({filename: { $regex: search }, extname: { $in: attachmentKind[`${kind}`]} }).skip(skip).limit(Number(pageSize)).sort({ createdAt: -1 }).exec()
}else{
res = await this.ctx.model.Attachment.find({filename: { $regex: search } }).skip(skip).limit(Number(pageSize)).sort({ createdAt: -1 }).exec()
}
count = res.length
} else {
if (kind) {
res = await this.ctx.model.Attachment.find({ extname: { $in: attachmentKind[`${kind}`]} }).skip(skip).limit(Number(pageSize)).sort({ createdAt: -1 }).exec()
count = await this.ctx.model.Attachment.count({ extname: { $in: attachmentKind[`${kind}`]} }).exec()
}else{
res = await this.ctx.model.Attachment.find({}).skip(skip).limit(Number(pageSize)).sort({ createdAt: -1 }).exec()
count = await this.ctx.model.Attachment.count({}).exec()
}
}
} else {
if(search) {
if (kind) {
res = await this.ctx.model.Attachment.find({filename: { $regex: search }, extname: { $in: attachmentKind[`${kind}`]} }).sort({ createdAt: -1 }).exec()
}else{
res = await this.ctx.model.Attachment.find({filename: { $regex: search }}).sort({ createdAt: -1 }).exec()
}
count = res.length
} else {
if (kind) {
res = await this.ctx.model.Attachment.find({extname: { $in: attachmentKind[`${kind}`]} }).sort({ createdAt: -1 }).exec()
count = await this.ctx.model.Attachment.count({ extname: { $in: attachmentKind[`${kind}`]} }).exec()
}else{
res = await this.ctx.model.Attachment.find({}).sort({ createdAt: -1 }).exec()
count = await this.ctx.model.Attachment.count({}).exec()
}
}
}
// 整理数据源 -> Ant Design Pro
let data = res.map((e,i) => {
const jsonObject = Object.assign({}, e._doc)
jsonObject.key = i
jsonObject.createdAt = this.ctx.helper.formatTime(e.createdAt)
return jsonObject
})
return { count: count, list: data, pageSize: Number(pageSize), currentPage: Number(currentPage) }
}
// Commons======================================================================================================>
async find(id) {
return this.ctx.model.Attachment.findById(id)
}
}
module.exports = UploadService
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

暂无描述
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lspCode/egg-RESTfulAPI.git
git@gitee.com:lspCode/egg-RESTfulAPI.git
lspCode
egg-RESTfulAPI
egg-RESTfulAPI
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /