由nodejs服务器渲染由jade编译的js文件

时间:2015-12-30 10:34:46

标签: javascript node.js gulp pug

我在渲染我的gulp-jade编译的js文件时遇到了一些问题。 这是它的样子: Gulpfile.js正在创建index.js:

gulp.task('templates', function () {
gulp.src('./views/*.jade')

    .pipe(wiredep({
        directory: './bower_components',
        //   bowerJson: require('./bower.json'),
        ignorePath: '/dist'
    })).pipe(jade({
  client: true
}))
    .pipe(gulp.dest('./views'))
    .pipe(livereload());

});

它会生成如下所示的index.js:

function template(locals) {
var buf = [];
var jade_mixins = {};
var jade_interp;

buf.push("<!DOCTYPE html5><html><head><link rel=\"stylesheet\" href=\"css/style.css\"/><title>Simple online game</title></head><body><!-- bower:js--><script src=\"../bower_components/jquery/jquery.js\"></script><!-- endbower--><h1>Co jest?</h1></body></html>");;return buf.join("");
}

现在我的问题是由节点服务器呈现那个views / index.js文件。我有像这样运行服务器的gulp任务:

gulp.task('server', function () {
server.listen({ path: './server.js' });

});

我的server.js看起来像这样:

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

app.set('views', './views');

app.set('view engine', 'js');
app.use(express.static('public'));

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

app.listen(3000, function() {
    console.log('Server is running');
});

当我运行gulp任务时,我收到错误:

  

错误:ENOENT:没有这样的文件或目录,打开&#39;索引&#39;      在错误(本机)      at Object.fs.openSync(fs.js:549:18)      在Object.fs.readFileSync(fs.js:397:15)

我改变道路:

    app.get('/', function (req, res) {
  var html = jade.renderFile('./views/index.js');
  res.render(html);
});

我得到这样的错误:

  

错误:./ views / index.js:6      4 | var jade_interp;      5 |   6 | buf.push(&#34;简单的在线游戏

Heade

&#34;);;返回buf.join(&#34;&#34;);      7 | }

     

预期的字符\n,!=

我做错了什么?如何正确设置服务器?

0 个答案:

没有答案