为model.file添加错误处理

pull/9/head
undefined 4 years ago
parent 8f6968bbbd
commit 9428efb156

@ -69,7 +69,7 @@ export async function dec(_id: ObjectID): Promise<number> {
return file.value.count;
}
export async function getWithSecret(_id: ObjectID, secret: string) {
export async function getWithSecret(_id: ObjectID, secret: string, reject?: Function) {
const file = await coll.findOne({ _id });
if (!file) throw new NotFoundError(_id);
const timestamp = _timestamp();
@ -78,13 +78,23 @@ export async function getWithSecret(_id: ObjectID, secret: string) {
throw new ForbiddenError();
}
}
return gridfs.openDownloadStream(_id);
const stream = gridfs.openDownloadStream(_id);
stream.on('error', (err) => {
console.error(err);
if (reject) reject();
});
return stream;
}
export async function get(_id: ObjectID) {
export async function get(_id: ObjectID, reject?: Function) {
const file = await coll.findOne({ _id });
if (!file) throw new NotFoundError(_id);
return gridfs.openDownloadStream(_id);
const stream = gridfs.openDownloadStream(_id);
stream.on('error', (err) => {
console.error(err);
if (reject) reject();
});
return stream;
}
export function getMeta(_id: ObjectID): Promise<Ufdoc> {

@ -6,7 +6,7 @@ import { STATUS } from '../model/builtin';
export const description = 'Calculate rating of a domain, or all domains';
export async function run({ domainId, isSub = false }, report) {
export async function run({ domainId, isSub = false }, report: Function) {
if (!domainId) {
const domains = await domain.getMulti().toArray();
await report({ message: `Found ${domains.length} domains` });
@ -16,7 +16,7 @@ export async function run({ domainId, isSub = false }, report) {
await report({
case: {
status: STATUS.STATUS_ACCEPTED,
judgeText: `Domain ${i} finished`,
judgeText: `Domain ${domains[i]._id} finished`,
time_ms: new Date().getTime() - start,
memory_kb: 0,
score: 0,

Loading…
Cancel
Save