[英]Render html with node.js
我真的是整個MEAN堆棧的新手,正在嘗試在openshift上創建一個應用程序,但無法呈現新頁面。
我只是不斷收到此錯誤,無法用我用Google搜索的任何方法解決它。
我的錯誤:無法在公共目錄中查找視圖“ / register”
使用server.js中的app.get('/',func())呈現索引頁面,並嘗試使用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');
有幾個問題。
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
一些注意事項:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.