2016-04-27 61 views
1

我對整個MEAN堆棧非常陌生,正試圖在openshift上創建應用程序,但無法呈現新頁面。使用node.js呈現html

我只是不斷收到這個錯誤,不能用我搜索過的任何東西解決它。

我的錯誤:無法查找視圖在公共目錄「/註冊」

它的工作原理完全罰款app.get呈現索引頁(「/」,FUNC())在服務器.js並嘗試與app.get('/ register)完全相同的事情。我以前用'/'有同樣的問題,但用app.use解決了它(express.static(__ dirname +'/ public'));

index.html和register.html都位於公共目錄中。

這些都是我的代碼提取物:

的index.html

<body ng-app=""> 
    <div class="container" ng-controller="LoginController" > 
     <h1>Logg in</h1> 
     <input class="form-control" placeholder="ID"/> 
     <input class="form-control" placeholder="Password"/> 
     <button class="btn">Logga in</button> 
     <button ng-click="open()" class="btn">Register User</button> 
    </div> 
</body> 

的LoginController

function LoginController($scope, $http) { 
console.log("Hello from Login"); 

    $scope.open = function() { 
     console.log('open i login.js'); 
     $http.get('/register') 
    }; 
}; 

server.js

var express = require('express'); 
var fs  = require('fs'); 
var mongojs = require('mongojs'); 
var jade = require('jade') 

var app = express(); 
var cors = require('cors'); 
var bodyParser = require('body-parser'); 

app.use(express.static(__dirname + '/public')); 
app.use(express.bodyParser()); 

app.get('/env',function(req, res){ 
    res.json(process.env); 
}); 

app.get('/', function (req, res) { 
    res.render('/index', {}); 
}); 

app.get('/register', function (req, res) { 
    res.render('/register'); 
}); 

app.set('view engine', 'jade'); 

回答

2

有幾個問題。

1)不要對'register'文件使用斜槓。這是/public文件夾中的文件,而不是文件夾或路由。

app.get('/register', function (req, res) { 
    res.render('register'); 
}); 

2)您已將jade設置爲您的渲染引擎。這意味着您將提供.jade文件。您的公用文件夾應該有index.jade。它應該是這樣的:

html 
    body(ng-app='') 
    .container(ng-controller='LoginController') 
     h1 Logg in 
     input.form-control(placeholder='ID') 
     input.form-control(placeholder='Password') 
     button.btn Logga in 
     button.btn(ng-click='open()') Register User 

有兩點要注意: