将文件写入与工作目录不同的目录

时间:2016-04-20 08:43:23

标签: javascript node.js fs

我的项目结构是这样的

enter image description here

现在,我需要将assets.js中的文件写入pdf文件夹中的文件。

这就是我正在尝试的

var qrImgPath =   '/lib/pdf/' +eod+'.png';
                    fs.writeFile(qrImgPath,body,'binary',function(err){
                        return next();
                    });

但我收到了以下错误

{ handle: 2,
  type: 'error',
  className: 'Error',
  constructorFunction: { ref: 5 },
  protoObject: { ref: 6 },
  prototypeObject: { ref: 1 },
  properties: 
   [ { name: 'stack',
       attributes: 2,
       propertyType: 3,
       ref: 1 },
     { name: 'arguments',
       attributes: 2,
       propertyType: 1,
       ref: 1 },
     { name: 'type',
       attributes: 2,
       propertyType: 1,
       ref: 1 },
     { name: 'message',
       attributes: 2,
       propertyType: 1,
       ref: 7 },
     { name: 'errno',
       propertyType: 1,
       ref: 8 },
     { name: 'code',
       propertyType: 1,
       ref: 9 },
     { name: 'path',
       propertyType: 1,
       ref: 10 } ],
  text: 'Error: ENOENT, open \'/lib/pdf/b0551796a741aa885e641dbd895a233f.png\'' }

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用__dirname。 (https://nodejs.org/docs/latest/api/globals.html#globals_dirname

path.join(__dirname, "../../lib/pdf" + eod + "png");

答案 1 :(得分:1)

您可以使用__dirname全局变量,该变量返回当前正在执行的脚本所在目录的名称。

所以,你的代码应该是这样的:

var qrImgPath =   path.join(__dirname, '../lib/pdf/' +eod+'.png');
                    fs.writeFile(qrImgPath,body, 'binary',function(err){
                        return next();
                    });