Javascript Node.js+;Actionhero代码未连续运行

Javascript Node.js+;Actionhero代码未连续运行,javascript,node.js,actionhero,Javascript,Node.js,Actionhero,很明显,我遗漏了Node.js和Actionhero如何工作的一些非常重要的内容 有人能给我解释一下为什么会出现以下问题: 我有一个简单的代码: 基本上它读取一个.css文件 buildAdsHTML: function (ads, type) { var cssDir = path.normalize(__dirname + '/../public/css/'); switch (type) { case 'text':

很明显,我遗漏了Node.js和Actionhero如何工作的一些非常重要的内容

有人能给我解释一下为什么会出现以下问题:

我有一个简单的代码: 基本上它读取一个.css文件

buildAdsHTML: function (ads, type) {
        var cssDir = path.normalize(__dirname + '/../public/css/');
        switch (type) {
            case  'text':
                var result = '';
                console.log("STEP 1");
                fs.readFile(cssDir + type + 'Ads.css', {encoding: 'utf8'}, function (err, data) {

                    console.log(err);
                    console.log(data);
                    if (!err) {

                        console.log("STEP 2");
                        result += '<style>' + data + '</style>';

                    } else {

                    }
                });

                break;

        }
        console.log('STEP 3');
        return result;
    }
就这样!没有别的了。 我仍然得到一个空字符串作为结果。 就像整个代码都没有经过
开关一样

我在actionhero项目的所有功能和方法中都注意到了这种行为, 调用
next(连接)
时最值得注意。不能只在方法末尾调用它

对于每个
if
swich
我得把它叫进去,才能真正控制结果

否则,我添加到连接中的所有新数据都将丢失


那是怎么回事?请详细解释一下这个功能,这样我在编码时就不会犯任何错误。

最终解决了这个问题

问题是我没有注意到
fs.readFileSync
没有回调功能

因此,该函数的正确使用应该是

var result= fs.readFileSync(pathToFile,{options})
return result;

对于我在
next(connection)中提到的问题,我仍然可以使用一些帮助。我真的不知道为什么它会像那样跳过整个代码部分

我发现next()不喜欢传递任何参数。有一两天我的应用程序出现了一个bug,因为我正在做。然后(下一个);'

此代码在actionhero中的何处使用?这是行动吗?
STEP 1
STEP 3
var result= fs.readFileSync(pathToFile,{options})
return result;