Попробовав textract (который, казалось, слишком много зависимостей) и pypdf2 (который не смог извлечь текст из pdf-файлов, которые я тестировал) и tika (который был слишком медленным), я закончил использование pdftotext
из xpdf (как уже предлагаемый в другом ответе) и просто вызвал двоичный код из python напрямую (вам может понадобиться адаптировать путь к pdftotext):
import os, subprocess
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
args = ["/usr/local/bin/pdftotext",
'-enc',
'UTF-8',
"{}/my-pdf.pdf".format(SCRIPT_DIR),
'-']
res = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output = res.stdout.decode('utf-8')
Существует pdftotext , который в основном делает то же самое но это предполагает pdftotext в / usr / local / bin, тогда как я использую это в AWS лямбда и хочу использовать его из текущего каталога.
Btw: для использования этого на лямбда вам нужно поставить двоичный и зависимость от libstdc++.so
в вашей лямбда-функции. Мне лично нужно было компилировать xpdf. Поскольку инструкции для этого взорвут этот ответ, я поместил их в свой личный блог .
создавая объект, создавайте его следующим образом
router.post('/graphs', (req, res) => {
const graph = new Graph({
nodes:[{id:req.body.nodes.id}],
links:[{source: req.body.source, target: req.body.target}]
}); // you need to include your data inside the instance of the model when you create it that was the problem.. It should work fine now
В своем коде вы фактически не создаете массив, который вы определили в своей схеме. Так что в соответствии с вашей схемой, как указано выше, а затем сохранить. ниже
graph.save((err) => {
if(err) {
res.status(500).json({ message: 'internal error' });
throw err;
}else{
res.send({ message: 'saved...' });
}
})
});
именно так вы в данный момент разместили вопрос ... поэтому ответ для этого действителен, но я предполагаю, что этого должно быть достаточно для того, чтобы вы выяснили, в чем проблема .. [ 114]