0

yaml 構成ファイルをロードするような i/o 関数を実行すると、コールバック関数は JSON 形式の yaml を返します。以下のようなコールバックなしの戻り値は可能ですか?

var u=require('./my_util');
var oData=u.yaml2json('path/to/yaml');

my_util.js

module.exports={
    yaml2json : function(path, callback){
    env = process.env.NODE_ENV || 'development';
    var fs    = require('fs'),
        yaml  = require('js-yaml');

    data=fs.readFileSync(path);
    try {
      yaml.loadAll(data, function (doc) {
        callback(null, doc[env]);
      });
    } catch(e) {
      console.log(e);
    }
  }
};

コールバックの使用

var u=require('./my_util');
u.yaml2json('path/to/yaml', function(err, oData){
  // do something
});
4

1 に答える 1

2

js-yaml github ページから次の例を試してください...

var yaml = require('js-yaml');

// pass the string
fs.readFile('/home/ixti/example.yml', 'utf8', function (err, data) {
  if (err) {
    // handle error
    return;
  }
  try {
    console.log( yaml.load(data) );
  } catch(e) {
    console.log(e);
  }
});

これを次のように変更できます...

var yaml = require('js-yaml');

// pass the string
var data = fs.readFileSync('/home/ixti/example.yml');
try {
  console.log( yaml.load(data) );
} catch(e) {
  console.log(e);
}

PS。自分でテストしていません。

于 2012-07-14T10:58:33.843 に答える