使用Express,如何使用sendFile将值传递给.js文件?

时间:2018-03-14 06:27:06

标签: node.js express

我正在试图弄清楚当有人访问某个页面时如何传递数据,并将URL中的值传递给JavaScript文件,并将其存储为该文件中变量的值,然后将文件发回。

我已经读过您可以使用模板引擎来执行此操作但是我找不到允许您使用JS文件执行此操作的文件(只能找到HTML)。

是否可以做这样的事情:

app.get('/initial/:public_key', (req, res) => {
  res.sendFile(__dirname + '/public_scripts.js', {
    publicKey: req.params.public_key
  });
});

如果是这样,我需要做什么?

1 个答案:

答案 0 :(得分:0)

好的,所以我找到了一个没有模板引擎的解决方案。

这可以改进,但我确定它有用。

app.get('/initial/:public_key', (req, res) => {
    fs.readFile(__dirname + '/public_scripts.js', 'utf8', function(err, contents) {
        let modifiedContents = contents.replace('%%PUBLICKEY%%',`${req.params.public_key}`);
        res.send(modifiedContents);
    });
});

public_scripts.js文件中有一个如下变量:

var publicKey = "%%PUBLICKEY%%";