Express.js将变量注入HTML文件?

时间:2018-04-28 16:50:29

标签: javascript html node.js express

说我有一个变量:

var pos = position.replace(/\"/g, "");
          console.log(pos);//{lat:31.752809648231494,lng:-7.927621380715323}
          var json = JSON.parse(position);
          console.log(json); //{lat: "31.752809648231494", lng: "-7.927621380715323"}


        var map = new google.maps.Map(document.getElementById('map'), {
          center: {lat: 31.791702, lng: -7.092620000000011},
          zoom: 6,
          mapTypeId: 'roadmap'
        });

假设此变量是在运行标准express.js服务器的应用程序中设置的,其中包含以下端点:

var n = 3

无论如何,我可以将var express = require(‘express.js’); var app = express() var n = 3 app.get(‘/‘, function(req,res) { res.sendFile(__dirname + ‘/index.html’) app.listen(3000) 的内容注入index.html吗?

1 个答案:

答案 0 :(得分:1)

使用模板呈现引擎,例如handlebars。还有很多其他选择,但车把可以适用于您的情况。

模板呈现引擎将获取模板文件和带有传入值的对象,并将其呈现为HTML:

使用npm:

为您的项目添加把手
npm install hbs
app.js中的

var express = require(‘express.js’);
var app = express()
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');

var n = 3

app.get(‘/‘, function(req,res) {
  res.render('index', {n: n})
}
app.listen(3000)

index.html移至views/index.hbs,并使用传入的值,如::

<html>
  <body>
    <p>The value of n is {{n}}</p>
  </body>
</html>