如何从Express.js发送纯HTML

时间:2014-07-16 05:20:25

标签: javascript node.js angularjs express

我的index.html文件包含:

<input name='qwe'>
{{qwe}}

我希望{{qwe}}按字面意思发送,即不会被服务器填充的变量替换。

我该怎么做?我正在考虑这个伪代码:

app.get('*',function(req,res){
  fs.read('index.html',function(data){
    res.send(data)
  })
})

但我想我不知道这通常是怎么做的。也许我必须使用预定义的Express.js模板引擎:

app.engine('html', ...)

但我不知道要阅读documentation的哪一部分。我还看了consolidate.js,但所有这些模板,似乎都是模板引擎&#34;,我真的需要一个模板引擎吗?

我想按原样发送文件。

顺便说一下,我正在做所有这些,因为我想使用Angular.js,但出于实验目的,我没有使用MEAN,我认为MEAN必须做这样的事情。

更新

我正在尝试这个:

app.get('*',function(req, res){
  require('fs').readFile('views/index.html', 'utf8', function(err, data){
    if(err) throw err;
    res.send(data);
  })
  // res.sendfile('views/index.html');
});

但文件已下载且未呈现,是否有任何建议?我想我必须设置Content-Type或其他标题?

2 个答案:

答案 0 :(得分:1)

在Express中,如果服务器收到GET /请求,则会搜索/public/index.html将其作为响应。您不必为/添加路由器。

因此,您可以将index.html放入public文件夹,然后从浏览器点击/。你应该得到它。

答案 1 :(得分:-1)

我认为您粘贴的代码是可以的。它将发送文件原始内容。