【发布时间】:2021-08-05 23:37:33
【问题描述】:
我正在尝试使用 deno 运行 API,它应该显示来自给定目录的文件的一些 PDF 元数据。 这在 PDF-ID 之前工作正常。 PDF-ID 应该是文件名的最后两位数字(例如 jk03.pdf、fh04.pdf、...)。如果我运行 API,所有元数据都显示为对象内的数组,除非 ID 创建了自己的数组。有谁知道我如何在不创建自己的数组的情况下实现 ID。
这是我到目前为止得到的:
import { PDFDocument } from 'https://cdn.skypack.dev/pdf-lib@^1.11.1?dts';
import { opine, json } from "https://deno.land/x/opine@1.3.4/mod.ts";
const app = opine();
const port = 3000;
app.use(json());
let metaData = new Array();
let pdfData = new Object();
app.get("/pdf", async(req, res) => {
const basePath = './Documents/';
for (const dirEntry of Deno.readDirSync("./Documents")) {
async function readDocumentMetadata() {
const filePath = basePath + dirEntry.name
const existingPdfBytes = await Deno.readFile(filePath);
const pdfDoc = await PDFDocument.load(existingPdfBytes, {
updateMetadata: false
});
var pdfId = dirEntry.name.match(/[0-9]+/g)[0];
const file = Deno.openSync(filePath, { read: true });
const fileInfo = Deno.fstatSync(file.rid);
pdfData = {
ID : pdfId[0],
Name : dirEntry.name,
Size : fileInfo.size + " Bytes",
Pages : pdfDoc.getPageCount(),
CreationDate : pdfDoc.getCreationDate(),
ModificationDate : pdfDoc.getModificationDate()
};
metaData.push(pdfData);
};
await readDocumentMetadata();
};
res.json(metaData);
});
console.log("Server running on port", (port));
app.listen(port);
这是我收到的错误消息: { "资源": "/c:/Users/JK/deno/deno-vs-node/GetAllPdf.ts", “所有者”:“德诺”, “代码”:“2531”, “严重性”:8, "message": "对象可能是 'null'。", “来源”:“deno-ts”, “开始线号”:25, “开始列”:21, "endLineNumber": 25, “结束列”:50 }
【问题讨论】:
-
阅读developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…。
String.prototype.match返回所有匹配的数组。如果您确定只有匹配,请执行const pdfId = dirEntry.name.match(/[0-9]+/g)[0]; -
不幸的是,这仍然给我一个错误消息:对象可能是'null'。
-
能否请您粘贴代码并将错误指向它发生的行
-
{ “资源”:“/c:/Users/JK/deno/deno-vs-node/PostPDF.ts”,“所有者”:“deno”,“代码”:“2531” , "severity": 8, "message": "Object is possible is 'null'.", "source": "deno-ts", "startLineNumber": 37, "startColumn": 19, "endLineNumber": 37, " endColumn": 48 }
-
这是在第 19 行:var fields = req.body.usedFields;
标签: arrays regex typescript deno