如何让index.htm文件包含其他html文件

时间:2017-03-21 17:10:06

标签: javascript node.js

使用节点。

以下是我在服务器上提供服务的方式:

app.get('/', function(req, res) {
    res.sendfile('./views/index.html');
});

在这个index.html文件中,我有两个需要服务的文件:

head.htmbody.htm

在PHP中,我只使用包含。如何在Node中完成?

3 个答案:

答案 0 :(得分:2)

这里的情况有很多解决方案......这取决于个人偏好你倾向于使用哪种工具。

我使用过的一个工具是EJS。你可以在这里阅读所有相关内容:

https://code.google.com/archive/p/embeddedjavascript/wikis/Templates.wiki

编辑:这样的一个示例是具有页眉和页脚模板,其中包含index.ejs页面。 (尽管您可以在索引页面中的任何位置使用包含这些文件进行渲染)。

Index.ejs(ejs只是使用的扩展名,它与其中包含渲染标记的html相同):

<html>
  <head>
  </head>
  <body>

Header.ejs:

  </body>
</html>

Footer.ejs:

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

内部路线配置:

function your_function( $user_login, $user ) {

// get previous regions the user logged in

// check current region

// notify if abnormal behaviour

}
add_action('wp_login', 'your_function', 10, 2);

显然你需要做的配置要求,我也假设你使用快递,EJS非常容易使用。

答案 1 :(得分:1)

选择a template library,任何模板库。我用nunjucks取得了成功。

然后你可以做类似的事情:

var nunjucks = require("nunjunks");

var app = express();

nunjucks.configure('views', {
    autoescape: true,
    express: app
});

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

index.html

{% include "item.html" %}

答案 2 :(得分:0)

如果你提到你正在使用的模板引擎会有所帮助。默认情况下,它应该是Pug(或Jade)(如果您使用了我认为的快速生成器)。

对于Jade:

app.js:

var express = require('express');
var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

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

现在,默认情况下,views文件夹将用于提供文件。一个好的做法是创建一个主布局,定义HTML文件的一般结构,然后在扩展文件中添加特定内容。

master.pug:

doctype html
html
  head
    title
        block title // title block

    link(rel='stylesheet', href='/stylesheets/default.css') //some default styles
    block styles // block for more styles

  body
    include header.pug //include header file

    block content // block to insert contents

    script(type='text/javascript',src='/javascripts/faculty-index.js') // default scripts


    block scripts // block to insert scripts

    include footer.pug // include footer file

块定义了一个空间,您可以在扩展文件后输入内容。 Include基本上只包含该空间中文件的代码。现在你的index.pug可以是这样的

index.pug

extends master.pug // extend the base template

block title
    | Index Page // adds the content in the title block

block styles
    link(rel='stylesheet', href='/stylesheets/index.css') // specific styles for index

block content
    h1 This is the index  // adds the index content which goes in the body tag where content is defined

此处索引文件使用主文件中的所有内容,并在标题,正文和样式中添加自己的内容。

查看pug documentation了解更多

可以使用任何模板引擎复制类似的行为。我使用的另一个是Handlebars,我更喜欢它,因为它的语法更像是编写html。但是,您必须先设置它。