【发布时间】:2016-07-05 23:56:34
【问题描述】:
我正在使用 node/express 并尝试遵循我在这里看到的答案:Display Pdf in browser using express js
但我不确定如何找到我的 PDF 文件的路径。它位于项目文件夹的主目录中,在一个名为“文件”的文件夹中,所以我认为路径只是
./file/myPDF.pdf
但无论我使用什么路径,我都会收到“无法加载 PDF 文档”。
【问题讨论】:
我正在使用 node/express 并尝试遵循我在这里看到的答案:Display Pdf in browser using express js
但我不确定如何找到我的 PDF 文件的路径。它位于项目文件夹的主目录中,在一个名为“文件”的文件夹中,所以我认为路径只是
./file/myPDF.pdf
但无论我使用什么路径,我都会收到“无法加载 PDF 文档”。
【问题讨论】:
__dirname 解决了 node.js 中的路径问题。它始终是当前正在执行的脚本所在的目录。
以下是完整的工作代码:
- files
- my_pdf_file.pdf
app.js
var express = require('express'),
fs = require('fs'),
app = express();
app.get('/', function (req, res) {
var filePath = "/files/my_pdf_file.pdf";
fs.readFile(__dirname + filePath , function (err,data){
res.contentType("application/pdf");
res.send(data);
});
});
app.listen(3000, function(){
console.log('Listening on 3000');
});
完整的文件和正在运行的项目:
克隆节点作弊pdf_browser,运行node app,然后运行npm install express。
乐于助人!
【讨论】:
使用相对路径不是个好主意,NodeJS 提供a "global" to build an absolute path:
var myPdf = require('path').normalize(__dirname + '/file/myPDF.pdf');
【讨论】: