Javascript Node.js Express sendFile()参数

Javascript Node.js Express sendFile()参数,javascript,node.js,Javascript,Node.js,我正在尝试使用express函数res.sendFile()发送一些文件。 当我尝试使用预定义的文件名运行它时,它工作正常。但当我试图指定另一个函数中的变量作为参数时,它只发送空文件。我已经尝试比较这两个字符串,它们是匹配的。我就是不明白 这是我的工作代码: let options = { root: `${os.tmpdir}/somefolder` } let fileName = "something.pdf"; res.sendFile(fileName, option

我正在尝试使用express函数res.sendFile()发送一些文件。 当我尝试使用预定义的文件名运行它时,它工作正常。但当我试图指定另一个函数中的变量作为参数时,它只发送空文件。我已经尝试比较这两个字符串,它们是匹配的。我就是不明白

这是我的工作代码:

let options = {
root: `${os.tmpdir}/somefolder` 


}
    let fileName = "something.pdf";
  res.sendFile(fileName, options , function(err){next()});
以下是对我不起作用的:

let options = {
root: `${os.tmpdir}/somefolder` 


 }
  let fileName = returnFileName(arguments);
  res.sendFile(fileName, options , function(err){next()});
此函数只是生成文件并返回其名称。正如我所说,我已经尝试比较这两个变量,结果是正确的。函数结尾如下所示:

return `${data._id}.pdf`;

感谢您的回复。

您能否提供returnFileName()函数?验证文件是否按指定路径生成,以及文件夹是否设置为express提供服务的静态资源,这可能是一个好主意。函数本身相当长。简而言之,它只是创建文件并发送其名称。我刚刚意识到,文件创建可能是原因。我认为,sendFile函数在文件创建之后调用得太早了。有没有办法,我可以让它延迟一段时间,或者让sendFile函数等待文件的创建?感谢you@user269867该文件夹没有设置为静态资源,但是,在我上面发布的示例中,它对我有效。谢谢。如果文件名为空,则可以添加,以确保文件名有效。要添加等待,可以使用setTimeout()或将wait/async添加到returnFileName(取决于代码)中。是否可以提供returnFileName()函数验证文件是否在指定路径生成,以及文件夹是否设置为express提供的静态资源。函数本身相当长。简而言之,它只是创建文件并发送其名称。我刚刚意识到,文件创建可能是原因。我认为,sendFile函数在文件创建之后调用得太早了。有没有办法,我可以让它延迟一段时间,或者让sendFile函数等待文件的创建?感谢you@user269867该文件夹没有设置为静态资源,但是,在我上面发布的示例中,它对我有效。谢谢。如果文件名为空,则可以添加,以确保文件名有效。要添加wait,可以使用setTimeout()或将wait/async添加到returnFileName(取决于代码)