如何在Node.js中返回没有回调函数的值?

时间:2012-07-14 10:50:12

标签: node.js

我做了一些i / o函数,比如加载yaml配置文件,回调函数将返回yaml的JSON格式。可能返回值没有回调,如下所示?

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
});

1 个答案:

答案 0 :(得分:2)

请尝试js-yaml github page ...

中的以下示例
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。没有自己测试过。