如何将ejs文件呈现到本地文件

时间:2014-03-03 14:01:48

标签: javascript html node.js express

我用ejs编写了一个HTML页面。 目前,当我运行app.js时,服务器正在运行,我可以使用localhost访问站点。我想使用app.js在本地保存此页面。 我想这很简单,但我没有在网上找到它。

我的ejs文件位于:... /views/index.ejs

app.js

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');

var app = express();


app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

index.ejs(它不是​​所有文件。我不认为它是相关的)

 <body>
<div id="cbp-so-scroller" class="cbp-so-scroller">


<%- include partials/home.ejs %>
<%- include partials/navbar.ejs %>
<%- include partials/about.ejs %>
<%- include partials/testimoni.ejs %>
<%- include partials/experties.ejs %>
<%- include partials/gallery.ejs %>
<%- include partials/contact.ejs %>
<%- include partials/sucscribe.ejs %>
<%- include partials/footer.ejs %>

</div>
</body>

3 个答案:

答案 0 :(得分:1)

使用nodejs

创建文件的示例
fs = require('fs');
fs.writeFile('helloworld.txt', 'Hello World!', function (err) {
  if (err) return console.log(err);
  console.log('Hello World > helloworld.txt');
});

答案 1 :(得分:0)

你在哪里调用EJS渲染方法?我看到你正在尝试从index.ejs获取其他EJS模板。您必须编写一个附加到现有html index.html文件的函数。

function renderIndex(){
     var home = new EJS({ url: 'partials/home.ejs' }).render();
     $( 'cbp-so-scroller' ).append( home );

}

它可以更优化一点,它给你和想法解决你的问题。

答案 2 :(得分:0)

如果我理解正确,您希望将呈现的页面保存为文件(即;下载),您可以这样做...

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

    res.attachment();
    res.render('index');

});