【问题标题】:Loading image using pug, js, json使用 pug、js、json 加载图像
【发布时间】:2020-04-09 22:35:42
【问题描述】:

我在使用完全响应和自动生成的 pug 和 js 页面时遇到了一些问题,我使用 js 文件将 JSON 数据传递给 pug 页面,pug 页面正确加载但不是图像(图像是 url) .我该怎么做才能让它加载?这是代码: 哈巴狗:

block content
 html
  head
    title #{title}
    link(rel='stylesheet', href='/css/style.css')
    meta(name="viewport" content="width=device-width, initial-scale=1")
  body
    header.header
          h1 #{title}
    each person in p
      div.person
        div.person-image
         img(src=('/${person.image}') top center no-repeat;) 
        a(href=`/user/poeti/person?name=${person.name}`)
         h2 #{person.name} 

js:

router.get('/poeti/person', function(req,res,next){
    const person = people.find((m) => m.name === req.query.name);;
    res.render('poeti', {
    title: person.name,
    pt: person
  });
});
-----------------------------------------------------------------
router.get('/new', function(req, res, next) {
 res.send(createFakePerson());
});
-----------------------------------------------------------------
function createFakePerson()
{
 people.json=new Object;
 let person;
 let vett = new Array();
 let texts = new Array();
 var i;
 for (i = 0; i < 10; i++) {
  let randomName = faker.name.findName(); // random name
  let randomEmail = faker.internet.email(); // random mail
  for (n = 0; n < 5; n++) {
   let randomText = faker.lorem.text(); // random text
   texts.push(randomText)
  }
  let randomCountry = faker.address.country() // random country
  let randomWebSite = faker.internet.url() // random website
  let randomProfile = faker.image.avatar() //random people image

  person = {
   name:randomName,
   email:randomEmail,
   text:texts,
   nazionality: randomCountry,
   website: randomWebSite,
   image: randomProfile
 }
 vett.push(person)
}

 let data = JSON.stringify(vett);
 fs.writeFileSync('people.json', data);
 return vett;
}

JSON(这是我的 json 文件的一个较短的示例):

[{
name: Pippo
email: Pippo@mail.com
text:[random texts]
image: https://randomimage
},{other random peoples}]

现在,我怎样才能让 pug 在 url https://randomimage 上显示我的图片? (在这种情况下,图像不存在,这只是一个示例)如果您需要了解其他任何信息以提供帮助,请告诉我。

附:我正在使用一个名为 faker.js 的库,它可以让我生成随机信息。

【问题讨论】:

  • 我只给出了一个简短的 json,因为你可以在函数 createFakePerson() 中看到我是如何创建它的

标签: javascript node.js json image pug


【解决方案1】:

person.find 函数将只返回一组人员中的一条记录。所以你的哈巴狗中的each person in p 语句只会遍历对象的属性,而不是一组人。您可以在 pug 代码中进行这些更改以显示图像。

...
...
  body
    header.header
      h1 #{title}
      //each person in p
      div.person
        div.person-image
          img(src=p.image top center no-repeat) 
          a(href=`/user/poeti/person?name=${p.name}`) Link
          h2 #{p.name} 

【讨论】:

  • Thnx,现在它可以工作了,我修改了一些代码,我只是把你的代码中的 img 部分放到我的代码中,因为我仍然需要循环遍历 json 数组,但现在它可以工作了
猜你喜欢
  • 2018-11-02
  • 1970-01-01
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多