我是 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) { ... NOT WORKING } 我尝试注销该部分中所有变量的值,并且它们具有其预期值,但是行:c[action].apply(global.info.action, global.info.params);
未按预期运行。它应该调用 controller_file 中的一个函数,并且应该做一个简单的res.write('hello world');
. 在我开始使用fs.exists
. if 语句中的所有内容在此检查之前都运行良好。
为什么代码没有按预期运行?为什么请求只是超时?它与整个同步与异步的事情有关吗?(对不起,我是一个完整的初学者)
谢谢