2014-08-27 55 views
3

我不明白爲什麼我得到這個「錯誤:ENOENT」錯誤。這裏是我的流星服務器方法:流星:錯誤:嘗試訪問使用node-gd的圖像時ENOENT

createImage: function(coords) { 
    console.log('createImage') 
    console.log(coords.area) 
    console.log(coords.x) 
    console.log(coords.y) 
    console.log(coords.x2) 
    console.log(coords.y2) 
    console.log(coords.w) 
    console.log(coords.h) 

    var gd = Meteor.npmRequire('node-gd'); 
    var path = Meteor.npmRequire('path'); 
    var fs = Meteor.npmRequire('fs'); 

    var source = 'forrest.png'; 
    var target = 'compimages'; 


    if (path.exists(target)) fs.unlink(target); 

     gd.openPng(source, function(png, path) { 
           if(png) { 
           console.log(png) 
           console.log(path) 
           } 
          } 
     ); 

    } 

下面是輸出我從它那裏得到的終端上:

=> Meteor server restarted 
I20140827-15:30:18.451(-7)? createImage 
I20140827-15:30:18.455(-7)? 27888 
I20140827-15:30:18.456(-7)? 242 
I20140827-15:30:18.459(-7)? 164 
I20140827-15:30:18.459(-7)? 410 
I20140827-15:30:18.459(-7)? 330 
I20140827-15:30:18.459(-7)? 168 
I20140827-15:30:18.460(-7)? 166 
W20140827-15:30:18.527(-7)? (STDERR) path.exists is now called `fs.exists`. 
I20140827-15:30:18.547(-7)? { [Error: ENOENT, open 'forrest.png'] errno: 34, code: 'ENOENT', path: 'forrest.png' } 
I20140827-15:30:18.548(-7)? undefined 

這些都是〜/ MYAPP /服務器內的目錄/

[email protected]:~/myapp/server$ ls 
compimages forrest.png privateimages server.js user-setup.js 

我想訪問forrest.png並使用node-gd根據傳入的座標切出一部分。

據我瞭解,這個錯誤意味着有一個目錄丟失。我試圖訪問的png文件與調用它的.js文件位於同一個目錄中(它們都在〜/ myapp/server /中,所以對我來說這看起來並不是問題所在)我唯一能做的就是。看到的是,路徑是不確定的我有,雖然安裝:

[email protected]:~/myapp/packages/npm/npm/node_modules$ ls 
node-gd path 

任何人都可以看到這是怎麼回事這個我使用流星0.9.0

回答

4

如果console.log(process.cwd())在你的服務器?代碼你會注意到你的Meteor應用程序的當前工作目錄是project/.meteor/local/build/programs/server但是你的代碼假設CWD是project/server

你可以做的是在你的路徑前加上通過在文件系統層次結構中進行5級升級而獲得的項目根服務器文件夾。

var projectRootServer="../../../../../server"; 
var source=projectRootServer+"forrest.png"; 

這不是很優雅,但它的工作原理。

不相關,但似乎path.exists已被棄用,而傾向於fs.exists,您應該修復此問題。

+0

再次感謝! :) ...我想知道我會在那裏多久!這似乎現在正在工作。只需要嘗試讓它對圖像做些什麼,這是另一天的事情!謝謝! – user1532669 2014-08-27 23:47:11

相關問題