return值获取不到,求解答
发布于 13 年前 作者 miracle123 6483 次预览 最后一次回复是 13 年前 来自
我在check_version.js文件中有如下代码: var fs = require(‘fs’); exports.version = function(path){ fs.readFile(path, ‘utf-8’, function(err, data){ if(err) throw err; var version = data.split(’=’); var version_num = version1.substr(1, 10) ; return version_num; }) ; } ;
我想return version_num的值,然后我在01.js文件中调用export的模块,代码如下:
01.js
var check_version = require(’./check_version.js’);
var assert = require(‘assert’);
//var expect = ‘0801004067’;
var path = ‘D:/nodejs/version.ini’;
var actual = check_version.version(path);
console.log(actual);
我执行01.js返回的结果是

console.log(actual);打印出来的是undefined,不知道为什么获取不到return的值
9 回复
node里面要获得方法返回值一般不会直接用等号,像这样:var result=someFunction(); 而是传一个callback进去:
将代码改成这样:
这样获取版本:
老雷霸气V5!
谢啦,学习了
或者改成这样:
这样获取版本:
注意fs.readFile()和fs.readFileSync()的区别
后面那个是同步的方法吧
@snoopy 霸气侧露
我想顺便问下,断言的功能不,我想加个断言判断下获取的那个version_num值是不是跟预期的一致,我加了个断言,但是貌似它没被执行,代码如下 var check_version = require(’./check_version.js’); var assert = require(‘assert’); var expect = ‘0801004067’; var path = ‘D:/nodejs/version.ini’; check_version.version(path, function(actual){ console.log(actual);
});