2017-02-06 15 views
1

Ich bin neu in Node.js und brauche Hilfe. Ich versuche, ein einfaches Programm mit Express (^ 4.14.1), Pfad (^ 0.12.7) und vash (^ 0.12.2) Module in Visual Studio zu entwickeln. Ich habe gerade ein paar Dateien erstellt, die ich Ihnen unten zeige. homeController.js und index.js Dateien sind innerhalb der Controller Ordner.TypeError: Kann die Eigenschaft 'get' von undefined nicht lesen (Node.js)

package.json

{ 
    "name": "the-board5", 
    "version": "0.0.0", 
    "description": "TheBoard5", 
    "main": "server.js", 
    "author": { 
    "name": "Utku" 
    }, 
    "dependencies": { 
    "express": "^4.14.1", 
    "path": "^0.12.7", 
    "vash": "^0.12.2" 
    } 
} 

server.js

var http = require("http"); 
var express = require("express"); 
var app = express(); 
var controllers = require("./controllers"); 
var port = process.env.port || 1337; 

app.set("view engine", "vash"); 

controllers.init(); 

http.createServer(app).listen(port); 

homeController.js

(function (homeController) { 
    homeController.init = function (app) { 
     app.get("/", function (req, res) { 
      res.render("index", { title: "Express + Vash" }); 
     }); 
    }; 
})(module.exports); 

index.js

(function (controllers) { 
    var homeController = require("./homeController"); 
    controllers.init = function (app) { 
     homeController.init(app); 
    }; 
})(module.exports); 

Das Problem ist, dass ich diese Störung erhalte.

C:\Users\Utku\documents\visual studio 2015\Projects\TheBoard5\TheBoard5\controll 
ers\homeController.js:5 
     app.get("/", function (req, res) { 
     ^

TypeError: Cannot read property 'get' of undefined 
    at Object.homeController.init (C:\Users\Utku\documents\visual studio 2015\Pr 
ojects\TheBoard5\TheBoard5\controllers\homeController.js:5:12) 
    at Object.controllers.init (C:\Users\Utku\documents\visual studio 2015\Proje 
cts\TheBoard5\TheBoard5\controllers\index.js:5:24) 
    at Object.<anonymous> (C:\Users\Utku\documents\visual studio 2015\Projects\T 
heBoard5\TheBoard5\server.js:12:13) 
    at Module._compile (module.js:571:32) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:488:32) 
    at tryModuleLoad (module.js:447:12) 
    at Function.Module._load (module.js:439:3) 
    at Module.runMain (module.js:605:10) 
    at run (bootstrap_node.js:420:7) 

Antwort

2

Sie verfehlten app in Linie, die

controllers.init(); 

Es

sein sollte
controllers.init(app); 
+0

Danke für die Korrektur! – Utku

+0

@whistleblower Gern geschehen –

Verwandte Themen