首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用node.js渲染html

用node.js渲染html
EN

Stack Overflow用户
提问于 2016-04-27 10:11:32
回答 1查看 3.6K关注 0票数 1

我对整个平均堆栈非常陌生,并且试图在openshift上创建一个应用程序,但是无法呈现一个新的页面。

我只是不断地得到这个错误,不能用谷歌搜索的任何东西来解决它。

My Error:查找公共目录中的"/register“视图失败

它完全可以用app.get('/',func())在server.js中呈现索引页面,并尝试使用app.get(‘/寄存器)实现完全相同的操作。一开始我和'/‘有同样的问题,但是用app.use(express.static(__dirname +’/public‘)解决了它);

index.html和register.html都位于公共目录中。

以下是我代码的摘录:

index.html

代码语言:javascript
复制
<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

代码语言:javascript
复制
function LoginController($scope, $http) {
console.log("Hello from Login");

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

server.js

代码语言:javascript
复制
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');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-27 10:29:53

有几个问题。

1)不要对“寄存器”文件使用斜杠。这是/public文件夹中的文件,而不是文件夹或路由。

代码语言:javascript
复制
app.get('/register', function (req, res) {
    res.render('register');
});

2)将jade设置为呈现引擎。这意味着您将为.jade文件提供服务。您的公用文件夹应该有index.jade。应该是这样的:

代码语言:javascript
复制
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

几个注意事项:

  • Jade是一个HTML模板引擎,它相对直接,参见http://jade-lang.com/tutorial/
  • 这里有一个快速生成器,它将给您一个示例应用程序,它是一个很好的起点:http://expressjs.com/en/starter/generator.html
  • 顺便说一句,还有一个HTML-2-Jade转换器,我有时觉得这很有用:http://html2jade.org/
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36886788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档