Javascript Node.js+;Actionhero代码未连续运行
很明显,我遗漏了Node.js和Actionhero如何工作的一些非常重要的内容 有人能给我解释一下为什么会出现以下问题: 我有一个简单的代码: 基本上它读取一个.css文件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':
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;