使用 pug、js、json 加载图像
Loading image using pug, js, json
我在使用完全响应和自动生成的 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}]
现在,如何让哈巴狗在 url https://randomimage 上显示我的图像? (在这种情况下,图像不存在,这只是一个示例)如果您需要了解其他任何信息以提供帮助,请告诉我。
P.S。我正在使用一个名为 faker.js 的库来生成随机信息。
person.find
函数将 return 仅来自一组人的单个记录。因此,你的哈巴狗中的语句 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}
我在使用完全响应和自动生成的 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}]
现在,如何让哈巴狗在 url https://randomimage 上显示我的图像? (在这种情况下,图像不存在,这只是一个示例)如果您需要了解其他任何信息以提供帮助,请告诉我。
P.S。我正在使用一个名为 faker.js 的库来生成随机信息。
person.find
函数将 return 仅来自一组人的单个记录。因此,你的哈巴狗中的语句 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}