Node.js 如果项目为空,如何忽略该项目
我想在表单上发布,但并非总是需要发布所有项目。我该怎么做Node.js 如果项目为空,如何忽略该项目,node.js,express,mongoose,Node.js,Express,Mongoose,我想在表单上发布,但并非总是需要发布所有项目。我该怎么做 const { title, subtitle, content, createdAt, image } = request.body; const { key } = request.file; let url = `${process.env.APP_URL}files/${key}`; const post = await Post.create( { ima
const { title, subtitle, content, createdAt, image } = request.body;
const { key } = request.file;
let url = `${process.env.APP_URL}files/${key}`;
const post = await Post.create(
{
image: url,
title,
subtitle,
content,
createdAt,
createdby: request.userId,
}
从我对你的问题的理解中,你可能需要考虑它是如何最终显示在前端的。
让我们想象一下,您设计的前端需要上述所有项目。如果您仍然想让用户创建一篇文章而不使用其中的任何一个,那么最终会导致UI中缺少元素,这甚至可能导致错误,具体取决于您如何呈现这些元素 解决方法是有条件地呈现每个项目。换句话说,若项不为null,则将其添加到DOM中 或者,您可以设置默认值,而不是null 例如,如果没有提供,则图像可以是通用图像url:image: url || 'directory/to/your/default/image'
编辑以处理无文件场景:
let url = 'directory/to/your/default/image'
if (request.file !== undefined && request.file) {
const { key } = request.file;
url = `${process.env.APP_URL}files/${key}`;
}
我希望它能为您提供一些方法。如果您想让用户在缺少参数项的情况下创建帖子,那么您可以设置默认值,如果没有参数项,则可以使用默认值。@JakubASuplicki在本例中,默认值设置为空。您是否有任何特定的冗余项?我希望它位于图像字段中。但它也出现了这个错误。无法分解“undefined”或“null”的属性键。这似乎是另一个问题,与本例中的问题无关。导致它的行似乎是const{key}=request.file;需要更多信息才能对此进行调试。在这种情况下,不会触发request.file,因为其中没有字段。我想知道如何忽略这一点,我想你可以先检查你的请求中是否有文件,然后再覆盖URL。否则,将保留默认图像。编辑了答案。