我正在使用表单构建器,管理员可以使用该表单构建器创建表单并将其存储为JSON。当客户端访问这些表单时,它们会动态呈现。当客户端在后端提交表单时,我需要获取所有字段的值。
目前我正在尝试按如下方式执行此操作:(节点服务器)
import Helmet from 'react-helmet';
export default (vo) => {
const helmet = Helmet.rewind();
return `
<!DOCTYPE html>
<html lang="en" ${helmet.htmlAttributes.toString()} >
<head>
${helmet.title.toString()}
<meta httpEquiv="X-UA-Compatible" content="IE=edge" />
<meta charSet='utf-8' />
<meta httpEquiv="Content-Language" content="en" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="white" />
${helmet.meta.toString()}
${helmet.link.toString()}
<link id="favicon" rel="shortcut icon" href="/favicon.png" sizes="16x16 32x32" type="image/png" />
<link rel="manifest" href="manifest.json">
${vo.cssBundle ? '<link rel="stylesheet" type="text/css" href="' + vo.cssBundle + '">' : ''}
</head>
<body ${helmet.bodyAttributes.toString()} >
<div id="root" class="root"><div>${vo.root}</div></div>
<script>
window.__PRELOADED_STATE__ = ${vo.initialState}
</script>
<script async src="${vo.jsBundle}"></script>
</body>
</html>
`;
};
我无法在 req.body 之后指定名称,因为我不知道字段名称,因为表单的动态性质。
控制台打印 [对象] 。当前呈现的表单有一个我需要的日期字段。如果我通过JSON.stringify(),它会打印 {} 。我提取的数据是否空白?这可能是使用数据字段的问题。
修改 它不是因为提交的是日期类型,dosnt使用文本
答案 0 :(得分:0)
这可能有两个原因:
您尚未安装/需要bodyParser
模块。
在表单标记中,您使用enctype
属性作为enctype="multipart/form-data"
。原因是您没有使用任何模块来处理浏览器无法读取的multipart/form-data
类型。请改用enctype="application/json"
。