node.js - 节点js中没有来自表单的请求
问题描述
我正在使用两种形式的 node js、express 和车把。第一种形式用于登录,第二种形式用于注册新用户。它们几乎相似,但第一个工作正常,第二个工作,不,我不知道为什么。
这是来自 register.hbr 的代码
<div class="login-page">
<div class="form">
<form class="login-form" name="register" method="POST" action="/register_success">
<input type="text" placeholder="email" required/>
<input type="password" placeholder="password" required/>
<input type="text" placeholder="nombre"/>
<input type="submit" value="Crear cuenta" name="register_success"></input>
<p class="message">Ya registrado? <a href="#">Entrar</a></p>
</form>
</div>
</div>
这是我在节点 js 中的路由器
rutas.post('/register_success', (req, resp)=>{
console.log(req.body);
const email = req.body.email;
const nombre = req.body.name;
const password = req.body.password;
firebase.auth().createUserWithEmailAndPassword(email, password).then(user=>{
resp.send('Usuario creado con exito');
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
resp.render('loginError');
});
});
我的问题是请求始终为空,IDK 如何跟踪或查找问题。有什么帮助吗?
解决方案
为了在 Express 端点中处理表单数据,您需要一个能够提取此信息的中间件。有很多可用的,但最简单的方法是使用 body-parser。将此添加到定义应用程序的主文件中:
const bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true,
}));
如果将来您需要处理更复杂的表单,例如带有附件的表单,您很可能需要一个外部库,例如multer。
推荐阅读
- facebook-graph-api - Can not get facebook page token
- next.js - NextJs 中的重定向组件
- javascript - NodeJS 计时
- typo3 - FAL & Flexform viewhelper
- c# - Connect c# Visual Studio 2019 to Oracle Database 19c
- python - maxlags in statsmodels OLS (cov_type='HAC')
- google-apps-script - 谷歌数据工作室自定义连接器会话?
- google-apps-script - 例外:参数(数字)与 FormApp.TimeItem.createResponse 的方法签名不匹配。(第 91 行,文件“代码”)
- java - 将 VPN 集成到应用程序桌面
- android - Android 共享应用常量最佳实践