簡體   English   中英

使用node.js渲染HTML

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM