如何:发送和获取;formdata“;使用帕格和javascript
在帕格得到了这张表格:如何:发送和获取;formdata“;使用帕格和javascript,javascript,node.js,forms,express,pug,Javascript,Node.js,Forms,Express,Pug,在帕格得到了这张表格: extends layout block login form(id="form-login") input(type="text", name="email", value="", placeholder="Tu email") br input(type="password", name="password", value="", placeholder="Tu contraseña") br
extends layout
block login
form(id="form-login")
input(type="text", name="email", value="", placeholder="Tu email")
br
input(type="password", name="password", value="", placeholder="Tu contraseña")
br
input(type="submit" value="Conectar")
我正试图在上述代码(正确识别)之后使用此脚本处理它:
处理程序函数正在接收一个空的req.body
这个问题扩大了
我希望有人知道这里发生了什么,提前谢谢。我想这可能是答案,因为我已经从这里修复了它
block login
form(id="login" action="/signin" method="post")
input(type="text", name="email", value="", placeholder="Tu email")
br
input(type="password", name="password", value="", placeholder="Tu contraseña")
br
input(type="submit" value="Conectar")
路线代码:
router.post('/signin', usercontrol.signIn)
控制器代码:
const User = require('../models/User')
const service = require('../services')
const bcrypt = require('bcrypt-nodejs')
function signUp (req, res) {
console.log('Registrando usuario: ', req.body)
const user = new User({
email: req.body.email,
displayName: req.body.displayName,
password: req.body.password
})
user.save((err) => {
if (err) res.status(500).send({ message: `Error al crear el usuario: ${err}`})
return res.status(200).send({ token: service.createToken(user) })
})
}
function signIn (req, res) {
console.log('Tratando de loguear con req: ', req.body.email)
if (!req.body.email) return res.status(200).send({message: 'No recibo el usuario'})
User.findOne({ email: req.body.email }, (err, user) => {
console.log('Respuesta de búsqueda', user)
if(err) return res.status(500).send({ message: err })
if(!user) return res.status(404).render('login', { title: 'Intenta loguearte de nuevo' })
console.log('Respuesta de user: ', user.email)
let userPwd = req.body.password
let dbPwd = user.password
console.log('Pwd Usuario: ', req.body.password, 'Pwd Base de Datos: ', user.password)
bcrypt.compare(userPwd, dbPwd, (error, isMatch) => {
if (error) return res.status(500).send({ message: error })
if (!isMatch) {
console.log('La contraseña No es correcta !isMatch: ', !isMatch)
return
} else {
req.user = user
res.status(200).send({
message: 'Te has logueado correctamente',
token: service.createToken(user)
})
}
})
})
}
module.exports = {
signIn,
signUp
}
formData的控制台输出是什么?空对象{}好的,这是您的问题。能否移动const formLogin=document.querySelector(“#form login”);提交回调中的行。并尝试控制台formLogin。检查您是否能够找到表单?如果我这样做。formLogin将不再存在,您的意思是在函数之前声明它,然后在函数中为它指定一个值?PUG代码:
body h1 Crear Post表单(action=“/api/Post”method=“Post”)输入(type=“text”name=“title”placeholder=“Titulo”)br输入(type=“textarea”name=“name”placeholder=“Nombre del autor”)br输入(type=“submit”value=“Crear Post”)
const User = require('../models/User')
const service = require('../services')
const bcrypt = require('bcrypt-nodejs')
function signUp (req, res) {
console.log('Registrando usuario: ', req.body)
const user = new User({
email: req.body.email,
displayName: req.body.displayName,
password: req.body.password
})
user.save((err) => {
if (err) res.status(500).send({ message: `Error al crear el usuario: ${err}`})
return res.status(200).send({ token: service.createToken(user) })
})
}
function signIn (req, res) {
console.log('Tratando de loguear con req: ', req.body.email)
if (!req.body.email) return res.status(200).send({message: 'No recibo el usuario'})
User.findOne({ email: req.body.email }, (err, user) => {
console.log('Respuesta de búsqueda', user)
if(err) return res.status(500).send({ message: err })
if(!user) return res.status(404).render('login', { title: 'Intenta loguearte de nuevo' })
console.log('Respuesta de user: ', user.email)
let userPwd = req.body.password
let dbPwd = user.password
console.log('Pwd Usuario: ', req.body.password, 'Pwd Base de Datos: ', user.password)
bcrypt.compare(userPwd, dbPwd, (error, isMatch) => {
if (error) return res.status(500).send({ message: error })
if (!isMatch) {
console.log('La contraseña No es correcta !isMatch: ', !isMatch)
return
} else {
req.user = user
res.status(200).send({
message: 'Te has logueado correctamente',
token: service.createToken(user)
})
}
})
})
}
module.exports = {
signIn,
signUp
}