서버가 요청을 받으면 라우터를 생성하고 내 라우터에 내 디스패처에게 필요한 컨트롤러를 요청하여 라우터와 모든 경로의 배열로 URL을 보냅니다. . 라우터가 내 디스패처로 컨트롤러를 보내고 디스패처는 컨트롤러를 호출합니다 index() func...
nodejs/javascript 변수가 덮어 쓰기
내 컨트롤러는 내 컨트롤러를 초기화 할 때 마지막 컨트롤러가 내 컨트롤러를 덮어 씁니다. 누군가 왜 저에게 말할 수 있습니까?
function Router(){
log(colors.green+"Router initialization...")
this.indexController = new (require("../controllers/index"))();
log(this.indexController.constructor.name);
this.notFoundController = new (require("../controllers/notFound"))();
log(this.notFoundController.constructor.name);
this.publicController = new (require("../controllers/public"))();
log(this.publicController.constructor.name);
this.faviconController = new (require("../controllers/favicon"))();
log(this.faviconController.constructor.name);
this.registerController = new (require("../controllers/register"))();
log(this.registerController.constructor.name);
log(colors.green+"Router initialization successful")
log(this.indexController.constructor.name);
log(this.notFoundController.constructor.name);
log(this.publicController.constructor.name);
log(this.faviconController.constructor.name);
log(this.registerController.constructor.name);
}
콘솔 로그 :
Log(21:9:4): Router initialization...
Log(21:9:4): IndexController
Log(21:9:4): NotFoundController
Log(21:9:4): PublicController
Log(21:9:4): FaviconController
Log(21:9:4): RegisterController
Log(21:9:4): Router initialization successful
Log(21:9:4): RegisterController
Log(21:9:4): RegisterController
Log(21:9:4): RegisterController
Log(21:9:4): RegisterController
Log(21:9:4): RegisterController
왜 내 변수를 덮어 쓰기
이, 내가 문제를 보여주기 위해 로그를 작은 코드를 내 라우터 만든입니까?
register.js : 당신은 RegisterController.protoype
에 Controller.prototype
를 할당하고 그것을을 수정
function RegisterController() {}
RegisterController.prototype = Controller.prototype;
RegisterController.prototype.constructor = RegisterController;
RegisterController.prototype.index = function(content) {
if (content.req.method == "POST") {
content.res.writeHeader(200, {
"Content-Type": "text/html"
});
content.res.write(content.datas);
content.res.end();
} else {
this.render.call(content, "register");
}
}
module.exports = RegisterController;
당신은 우리에게'컨트롤러/register.js'의 내용을하시기 바랍니다 보여줄 수 : 당신은 볼 것이다
? – Bergifunction RegisterController() { } RegisterController.prototype = Controller.prototype; RegisterController.prototype.constructor = RegisterController; RegisterController.prototype.index = 기능 (내용) { \t (content.req.method == "POST") 경우 { \t \t content.res.writeHeader (200, { "Content-Type을": "텍스트/html "}); \t \t content.res.write (content.datas); \t \t content.res.end(); \t} \t else { \t \t this.render.전화 (내용, "등록"); \t} } module.exports = RegisterController; – Banou26
아니요, 아니요, 의견에 코드를 게시하는 대신 질문을 편집하십시오. 오, 그리고 StackOverflow에 오신 것을 환영합니다 :-) – Bergi