Halo Saya cukup baru mengenal Node, express, dan pug. Saya mencoba merender objek ke tampilan dan saya menerima kesalahan pug, Atau setidaknya menurut saya itu adalah kesalahan pug. Saya menggunakan pugcli dan ketika mencoba merender html saya mendapatkan kesalahan.
Kesalahan pugcli ditampilkan di terminal sebagai:
Tidak dapat membaca 'panjang' properti yang tidak ditentukan
Ini aneh karena ketika saya mencoba melihatnya di browser meskipun pug cli menunjukkan kesalahan, browser menampilkan daftar tetapi semua elemen <li>
kosong.
Saya ingin <li>
menampilkan id objek, nama, dan umur
Saya memahami bahwa di pug untuk merender suatu objek Anda harus mengulanginya dengan semacam loop for. Saya telah menulisnya di file pug tetapi objeknya tidak dirender.
Saya akan sangat menghargai bantuan tentang apa yang saya lewatkan dalam kode atau apakah saya benar-benar mengacaukan kodenya?
Pengaturan saya adalah sebagai berikut
bin/www public javascripts stylesheets routes index.js views index.pug layout.pug ... app.js
Index.pug saya adalah:
extends layout
block content
h1= title
p Welcome to #{appHeading}
div
ul
for user, i in users
li= users.name +" - "+ users.id
li=number
Ini adalah index.js saya:
var express = require('express');
var router = express.Router();
var users = [
{
id: 0,
name: 'Glenn',
age: 40
},
{
id: 1,
name: 'Jeff',
age: 37
},
{
id: 2,
name: 'Sara',
age: 22
},
{
id: 3,
name: 'Bill',
age: 41
},
{
id: 4,
name: 'Mary',
age: 29
},
];
var appHeading = 'my object render app '
var number = 42;
/* GET home page. */
router.get('/', function(req, res, next) {
//res.json(users);
//res.send('Is this working?')
res.render('index', {
title: 'This is my app to render objects in pug',
users,
number,
appHeading
});
});
module.exports = router;
dan app.js saya adalah:
const createError = require('http-errors');
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
const bodyParser = require('body-parser');
const indexRouter = require('./routes/index.js');
const usersRouter = require('./routes/users.js');
const app = express();
/*const logging = function(req, res, next){
console.log('Logging....')
next();
}
*/
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use(logger('dev'));
//Body Parser middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended : false}));
//app.use(express.json());
//app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
//app.use(logging);
app.use('/', indexRouter);
app.use('/users', usersRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
app.listen(port=3000 , function(){
console.log('Server started on port '+ port);
})
module.exports = app;
!{JSON.stringify(users)}
ke dalam template Anda? - person Juan D. Gómez   schedule 15.11.2018!{JSON.stringify(users)}
ke file pug dan itu membuat kesalahan dalam render atau halaman. Itu tidak menyukai kode di file pug. Saya mencobanya di file js dan tidak menghasilkan apa-apa. Saya selanjutnya bermain dengan ti dan itu mengubah objek menjadi string. Saya tidak bisa lagi menelepon sesuatu sepertiusers.id
dan mendapatkan id. Itu menjadi string lengkap yang harus saya uraikan sepenuhnya. ini tidak akan berhasil. Saya akan sangat menghargai bantuan lainnya. - person digitalguru   schedule 15.11.2018for user, i in users
. Saya menghargai bantuan apa pun. - person digitalguru   schedule 15.11.2018!{JSON.stringify(users)}
adalah untuk men-debug dan memeriksa apakah array pengguna diteruskan dengan benar. Jadi, Anda tidak perlu menyimpan kode ini di templat, cukup periksa apakah nilainya sudah benar lalu hapus. - person Juan D. Gómez   schedule 15.11.2018users
vs.user
). - person Graham   schedule 15.11.2018