私はNode.jsの初心者で、このコードで問題が発生していました。
var fs = require('fs');
Framework.Router = function() {
this.run = function(req, res) {
fs.exists(global.info.controller_file, function(exists) {
if (exists) {
// Here's the problem
res.writeHead(200, {'Content-Type':'text/html'});
var cname = App.ucfirst(global.info.controller)+'Controller';
var c = require(global.info.controller_file);
var c = new App[cname]();
var action = global.info.action;
c[action].apply(global.info.action, global.info.params);
res.end();
} else {
App.notFound();
return false;
}
});
}
};
問題は、「global.info.controller_file」が存在するかどうかを確認した後の部分にあります。コードが内部で正しく機能しないようです:if(exists){... NOTWORKING }ログアウトしようとしましたそのセクションのすべての変数の値であり、それらには期待値がありますが、行:c[action].apply(global.info.action, global.info.params);
は期待どおりに実行されていません。これは、controller_file内の関数を呼び出すことになっており、単純なを実行することになっていますres.write('hello world');
。を使用してファイルのチェックを開始する前は、この問題は発生していませんでしたfs.exists
。ifステートメント内のすべては、このチェックの前に完全に正常に機能しました。
コードが期待どおりに実行されないのはなぜですか?リクエストがタイムアウトするのはなぜですか?それは同期と非同期の全体と関係がありますか?(申し訳ありませんが、私は完全な初心者です)
ありがとうございました