错误:参数'path'必须是字符串或没有空字节的Uint8Array

问题描述 投票:0回答:1

[尝试使用Express.js建立网站,我正在努力在该网站上显示pdf。尝试使用fs和path来显示它,我真的很麻烦,因为似乎我使用的路径回调使用不正确,因此出现错误。坦白说,这段代码是通过解析数十条SO帖子而编写的,因此,我很难理解为什么收到此错误消息(参数“ path”必须是字符串或不包含空字节的Uint8Array)。

我已经尝试将fs.readfileSync更改为fs.statSync。在使用path之前,我仅通过fs设置了链接,但是代码很长,因为在fs中链接到pdf时我一直在努力寻找相对路径。

const express = require("express"),
      fs      = require("fs"),
      path    = require("path");

const router = express.Router();

router.get("/bob", (req,res)=> {
    var filePath = path.join(__dirname, "..", "views", "files", "bob.pdf");
    var fileString = fs.readFileSync(filePath, "utf-8");
    fs.readFile(fileString , (err,data) => {
        if(err){
            console.log(err);
        } else {
            res.contentType("application/pdf");
            res.send(data); 
        }
    });
});

我希望代码对pdf进行编码并显示它,但是我收到了错误消息:“参数'path'必须是字符串或不包含空字节的Uint8Array。收到了'%PDF-1.7....。 “

javascript node.js express
1个回答
0
投票

我认为您的问题与此类似。你可以访问这个]

[fs.statSync with Buffer "Error: Path must be a string without null bytes"

© www.soinside.com 2019 - 2024. All rights reserved.