>source

파일 만 만들어 페이지를 쉽게 추가 할 수있는 사이트를 만들려고합니다. 주입하기 위해 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

    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);
    });
    
    

    어딘가에 값을 유지해야하는 경우 데이터베이스 또는 키 저장소를 사용하십시오.

관련 자료

  • 이전 Deadbolt "제한"주석의 영향을받는 Jackson deserialiser
  • 다음 python - cross_val_predict에서 사용자 정의 모델 빌드를 전달하는 방법