如何在nodejs中找到项目的路径?

时间:2016-03-19 04:17:37

标签: node.js pdf express

我正在使用node / express并尝试按照我在此处看到的答案:Display Pdf in browser using express js

但我不确定如何找到PDF文件的路径。它位于项目文件夹的主目录中,位于名为“file”的文件夹中,所以我认为路径只是

./file/myPDF.pdf

但无论我使用何种路径,我都会收到“无法加载PDF文档”。

2 个答案:

答案 0 :(得分:2)

使用相对路径不是一个好主意,NodeJS提供a "global" to build an absolute path

var myPdf = require('path').normalize(__dirname + '/file/myPDF.pdf');

答案 1 :(得分:2)

__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

快乐帮助!