我正在尝试创建一个站点,您可以在其中仅通过制作文件即可轻松添加页面。为了注入,我通过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中插入一个字符串可以正常工作,并且该项目将被替换。
答案 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);
});
如果您需要将值保留在某个地方,请使用数据库或密钥存储。