将JavaScript变量注入JSON文件(Node.js)

时间:2019-05-29 02:34:18

标签: javascript node.js json express

我正在尝试创建一个站点,您可以在其中仅通过制作文件即可轻松添加页面。为了注入,我通过JSON文件(keys.json)传递数据。我将如何做到这一点,以便能够将变量注入文件中。这是我制作的一个样本。

JS:

app.get('*', async (req, res) => {
    var URL = '/i/d/k';
    keys = JSON.parse(v[3]); //v[3] is the JSON file as a string (where it comes from is irrelevant)
    //insert vars into keys here
    html = await U.inject(html, keys);
    res.send(html);
});

keys.json:

{
  "title": "Hi"
  "url": URL
  "user": req.body.user
}

html:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <title>{{title}}</title>
  </head>
  <body>
    <p>{{user}}, you have visited: {{url}}</p>
</html>

我将如何去做?可能吗感谢您的帮助!

注意::在keys.json中插入一个字符串可以正常工作,并且该项目将被替换。

1 个答案:

答案 0 :(得分:0)

一旦解析了JSON,您就可以像访问任何其他对象一样访问和更改其值。

const myJSON = '{"one":1,"two":2,"three":3,"four":5}';

const myObject = JSON.parse(myJSON);

console.log(myObject);

myObject.four = 4;

console.log(myObject);

const myConst = 5;

myObject.five = myConst;

console.log(myObject);

因此,使用您的示例代码,您可以这样做:

app.get('*', async (req, res) => {
    var URL = '/i/d/k';
    keys = JSON.parse(v[3]); //v[3] is the JSON file as a string (where it comes from is irrelevant)

    keys.url = URL;
    keys.user = req.body.user;
    
    html = await U.inject(html, keys);
    res.send(html);
});

如果您需要将值保留在某个地方,请使用数据库或密钥存储。