2014-08-29 27 views
6

मैंने promise का उपयोग करने वाले कुछ कोड को लागू करने का प्रयास किया, और मैंने भूत से कुछ स्रोत कोड कॉपी किए।नोडज: पथ एक स्ट्रिंग होना चाहिए

कोड:

var Promise = require('bluebird') 
var fs = require('fs') 
var path = require('path') 
var configPath = path.join(__dirname, '/config-example.js') 
var configFile 

function writeConfigFile(){ 
    return new Promise(function(resolve,reject){ 
     var read, 
      write, 
      error; 
     console.log('path->', configPath) 
     read = fs.createReadStream(configPath); 
     read.on('error', function(err){ 
      console.log('Error->', err); 
      reject(err) 
     }) 

     write = fs.createWriteStream(configFile) 
     write.on('error', function(err){ 
      console.log('Error->',err) 
      reject(err) 
     }) 
     write.on('finish', resolve) 
     read.pipe(write) 
    }); 
} 

var p = writeConfigFile(); 
    p.then(function(data){ 
     console.log(data) 
    },function(data){ 
     console.log('data->',data) 
    }); 

त्रुटि आउटपुट

path-> /mnt/share/Learn/config-example.js 
data-> [TypeError: path must be a string] 
Error-> { [Error: ENOENT, open '/mnt/share/Learn/config-example.js'] 
errno: 34, code: 'ENOENT', 
path: '/mnt/share/Learn/config-example.js' } 

उत्तर

3

आपकी समस्या यहां है:

write = fs.createWriteStream(configFile) 

लेकिन जब मैंने उसे दौड़ा, मैं एक त्रुटि मिली configFile - यहां अनियमित चर है । आप कुछ डीबगर का उपयोग कर भविष्य में एक ही समस्या से बच सकते हैं।

मैं आपको सलाह देता हूं कि node-inspector

संबंधित मुद्दे