gpt4 book ai didi

javascript - Node JS 将可能未定义的 JavaScript 对象传递给 pug 模板

转载 作者:行者123 更新时间:2023-11-30 20:02:10 24 4
gpt4 key购买 nike

我的路由需要将一系列 JavaScript 对象传递给 pug 模板。

router.get('/edit/:itemObjectId', async function(req, res, next) {
var itemObjectId = req.params.itemObjectId;
var equipmentCategoryArr = [];
var lifeExpectancyArr = [];
var businessUnitResponsibleArr = [];
var item = undefined;

try {
item = await db_item.getItem(itemObjectId);

// Where item["result"] is either undefined or a JavaScript Object. E.g. {"createdAt":"2018-11-07T04:07:44.587Z","updatedAt":"2018-11-07T04:25:18.526Z","item_name":"GM Portable","manufacturer":"GM"}
res.render('editItem', {
title: 'Edit item details', // Give a title to our page
item: item["result"],
equipmentCategoryArr: req.app.locals.equipmentCategoryArr,
lifeExpectancyArr: req.app.locals.lifeExpectancyArr,
businessUnitResponsibleArr: req.app.locals.businessUnitResponsibleArr
});
} catch (err) {
return Promise.reject(JSON.stringify({ "Error": err }));
}
});

在哪里

item["result"] 可以是未定义的或 JavaScript 对象。

在 editItem.pug 页面上,我需要在 JavaScript 中使用该项目。

block extraScript
script.
console.log(!{JSON.stringify(item)});

但是,如果传递的项目未定义,它会呈现为“console.log();”。所以 !{JSON.stringify(item)} 根本没有被渲染。

如何在前端检查项目是否未定义?

最佳答案

您可以在三个地方操作它,全部使用三元运算符(condition ?ifTrue : ifFalse)

在路由中你可以将其从未定义状态切换为空对象

item: item["result"] ? item["result"] : {}

在模板中,您可以应用相同的逻辑:

console.log(!{ item ? JSON.stringify(item) : '{}' } );

您将需要执行上述两件事之一,以确保将某些内容呈现到客户端代码中,否则您将面临来自空表达式的语法错误:

var item = ;

关于javascript - Node JS 将可能未定义的 JavaScript 对象传递给 pug 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53255483/

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