我在将以下 Ejs 转换为哈巴狗时遇到问题
I am having a problem to convert the following Ejs to pug
我在将以下 Ejs 转换为哈巴狗时遇到问题
在admin/edit-product.ejs
我们可以对已有的产品进行更改
但我想将 ejs 转移到哈巴狗
任何解决方案
<form class="product-form" action="/admin/<% if (editing) { %>edit-product<% } else { %>add-product<% } %>" method="POST">
在 admin.js 控制器中
exports.getAddProduct = (req, res, next) => {
res.render('admin/edit-product', {
pageTitle: 'Add Product',
path: '/admin/add-product',
editing: false
});
};
exports.postAddProduct=(req, res, next) => {
const title=req.body.title;
const imageUrl=req.body.imageUrl;
const price=req.body.price;
const description=req.body.description;
const product=new Product(title,imageUrl,description,price);
product.save();
res.redirect('/');
};
exports.getEditProduct = (req, res, next) => {
const editMode = req.query.edit;
if (!editMode) {
return res.redirect('/');
}
const prodId = req.params.productId;
Product.findById(prodId, product => {
if (!product) {
return res.redirect('/');
}
res.render('admin/edit-product', {
pageTitle: 'Edit Product',
path: '/admin/edit-product',
editing: editMode,
product: product
});
});
};
Pug 支持内联 JavaScript 代码,因此您可以像这样使用 ternary conditional within some attribute interpolation:
form.product-form(action='/admin/' + (editing ? 'edit' : 'add') + '-product', method='POST')
或者为了更易读的方法,预先在代码块中构建 action
路径并将其存储在变量中:
-
let action = editing ? 'edit' : 'add'
let actionPath = `/admin/${action}-product`
form.product-form(action= actionPath, method='POST')
我在将以下 Ejs 转换为哈巴狗时遇到问题
在admin/edit-product.ejs 我们可以对已有的产品进行更改 但我想将 ejs 转移到哈巴狗 任何解决方案
<form class="product-form" action="/admin/<% if (editing) { %>edit-product<% } else { %>add-product<% } %>" method="POST">
在 admin.js 控制器中
exports.getAddProduct = (req, res, next) => {
res.render('admin/edit-product', {
pageTitle: 'Add Product',
path: '/admin/add-product',
editing: false
});
};
exports.postAddProduct=(req, res, next) => {
const title=req.body.title;
const imageUrl=req.body.imageUrl;
const price=req.body.price;
const description=req.body.description;
const product=new Product(title,imageUrl,description,price);
product.save();
res.redirect('/');
};
exports.getEditProduct = (req, res, next) => {
const editMode = req.query.edit;
if (!editMode) {
return res.redirect('/');
}
const prodId = req.params.productId;
Product.findById(prodId, product => {
if (!product) {
return res.redirect('/');
}
res.render('admin/edit-product', {
pageTitle: 'Edit Product',
path: '/admin/edit-product',
editing: editMode,
product: product
});
});
};
Pug 支持内联 JavaScript 代码,因此您可以像这样使用 ternary conditional within some attribute interpolation:
form.product-form(action='/admin/' + (editing ? 'edit' : 'add') + '-product', method='POST')
或者为了更易读的方法,预先在代码块中构建 action
路径并将其存储在变量中:
-
let action = editing ? 'edit' : 'add'
let actionPath = `/admin/${action}-product`
form.product-form(action= actionPath, method='POST')