gpt4 book ai didi

express - 哈巴狗迭代 : Cannot read property 'length' of undefined

转载 作者:行者123 更新时间:2023-12-04 15:54:13 25 4
gpt4 key购买 nike

我在 js 文件中有以下数据:

let data =[
{id:1,type:"action"},
{id:2,type:"comedy"}
];

并尝试使用哈巴狗模板打印它

doctype html
html
head
title= title
link(rel='stylesheet', href='stylesheets/style.css')
body

table
tr
th Id
th Type
each post in data
tr
td #{post.id}
td #{post.type}
block content

我在每个帖子行收到错误“无法读取未定义的属性‘长度’”

应用程序.js:

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();
let data =[
{id:1,type:"action"},
{id:2,type:"comedy"}
];

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

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

module.exports = app;

index.js:

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Movies' });
});

module.exports = router;

最佳答案

试试这个:

index.js:

let data =[
{id:1,type:"action"},
{id:2,type:"comedy"}
];

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Movies', data }); // you forgot passing the data array
})

另一种解决方案是:

app.js 中,您可以这样做:

var app = express();
let data =[
{id:1,type:"action"},
{id:2,type:"comedy"}
];
app.locals.data = data; //added

现在您可以访问在应用程序中呈现的模板中的局部变量,这意味着您不需要在 render() 方法中传递此 data

关于express - 哈巴狗迭代 : Cannot read property 'length' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52606235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com