我有一个注册用户的表格,但发布请求不起作用
\n\n我已经检查了 bodyparser,委托包括订单,将 enctype 添加到表单中,但仍然不起作用
\n\n该路线正在工作,因为它调用我的控制器,但正如您在控制台图像中看到的那样,它会以未定义的请求转到控制器,尽管 url 参数是在 devtools 中定义的
\n\n服务器.js:
\n\nconst express = require(\'express\'); \nconst consign = require(\'consign\');\nconst bodyParser = require(\'body-parser\');\nconst expressValidator = require(\'express-validator\');\nconst helmet = require(\'helmet\');\nconst jwt = require(\'jsonwebtoken\');\nrequire(\'dotenv-safe\').load(); \n\nconst app = express(); \napp.set(\'view engine\', \'ejs\');\napp.set(\'views\', \'./app/paginas\'); \n\napp.use(express.static(\'./app/publico/\'));\napp.use(bodyParser.urlencoded({extended: true}));\napp.use(bodyParser.json());\napp.use(expressValidator());\n\nconsign(/* {cwd: \'app\'} */)\n .include(\'config/conectarBD.js\')\n .then(\'app/modelos\')\n .then(\'app/controles\')\n .then(\'app/rotas\')\n .into(app);\n\n\n/* consign()\n .include(\'app/rotas\')\n .then(\'config/conectarBD.js\')\n .then(\'app/modelos\')\n .then(\'app/controles\')\n .into(app); */\n\nconsole.log(\'Inst\xc3\xa2ncia do app criada\');\n\nmodule.exports = app;\n
Run Code Online (Sandbox Code Playgroud)\n\n表单.ejs:
\n\n<div class="row" id="form_registro">\n <div class="col-sm-6 offset-sm-3 text-center">\n <form action="/registrar" method="POST">\n <fieldset>\n <legend>Registro</legend>\n <div class="form-group">\n <label for="form-r-email">Nome:</label>\n <input type="text" class="form-control" id="nome" name="nome" placeholder="Seu nome">\n </div>\n <div class="form-group">\n <label for="form-r-email">Email:</label>\n <input type="email" class="form-control" id="email" name="email"\n placeholder="Seu email">\n </div>\n <div class="form-group">\n <label for="form-r-senha">Senha:</label>\n <input type="password" class="form-control" id="senha" name="senha"\n placeholder="Sua senha">\n </div>\n <!-- TODO implementar -->\n <div class="form-check">\n <input type="checkbox" class="form-check-input" id="exampleCheck2">\n <label class="form-check-label" for="exampleCheck1">Lembre de mim</label>\n </div>\n <button type="submit" class="btn btn-success">Registrar</button>\n </fieldset>\n <div>\n J\xc3\xa1 tem uma conta?\n <a href="#" id="logar">Registrar!</a>\n </div>\n </form>\n </div>\n </div>\n
Run Code Online (Sandbox Code Playgroud)\n\n路由登录.js:
\n\nmodule.exports = function(application) {\n application.get(\'/login\', function(req, res) {\n console.log(\'Rota pegaPaginaLogin\');\n application.app.controles.login.pegaPaginaLogin(application, req, res);\n });\n application.post(\'/admin/logar\', function(req, res) {\n console.log(\'Rota /admin/logar\');\n application.app.controles.login.logaUsuario(application, req, res);\n });\n\n application.post(\'/registrar\', function(req, res) {\n console.log(\'Rota registrar\');\n console.log(\'req.body >>>\' + req.body);\n res.status(500).send(\'testing\');\n application.app.controles.login.registraUsuario(application, req, res);\n });\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n控制器注册器Usuario:
\n\nmodule.exports.registraUsuario = function (application, req, res) {\n console.log(\'Controller registraUsuario\');\n console.log(\'REQ....\' + req)\n var usuario = req.body;\n\n /** Valida\xc3\xa7\xc3\xa3o do formul\xc3\xa1rio */\n //TODO validar formatos\n req.assert(\'nome\', \'Nome \xc3\xa9 obrigat\xc3\xb3rio\').notEmpty();\n req.assert(\'email\', \'Email \xc3\xa9 obrigat\xc3\xb3rio\').notEmpty();\n req.assert(\'senha\', \'Senha \xc3\xa9 obrigat\xc3\xb3rio\').notEmpty();\n\n var errosValidacao = req.validationErrors();\n\n console.log(errosValidacao);\n\n if (errosValidacao) {\n res.render(\'login\', {\n validacao: errosValidacao,\n usuario: usuario\n });\n return;\n }\n\n /** Conex\xc3\xa3o com banco */\n var conexao = application.config.conectarBD();\n var novoUsuario = new application.app.modelos.UsuariosModel(conexao);\n\n novoUsuario.getUsuario(usuario, function (error, result) {\n console.log(result);\n\n novoUsuario.novoUsuario(usuario);\n });\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n型号 Usuarios型号:
\n\nfunction UsuariosModel(conexao) {\n this._conexao = conexao;\n}\n\n/** Se usu\xc3\xa1rio existir, retorna a id_usuario */\nUsuariosModel.prototype.getUsuario = function (usuario, callback) {\nconsole.log(\'Model getUsuario\');\nthis._conexao.query(\'SELECT id_usuario FROM usuarios WHERE email = "\' + usuario.email + \' and senha = "\' + usuario.senha + \'"\');\n
Run Code Online (Sandbox Code Playgroud)\n\n}
\n\nUsuariosModel.prototype.novoUsuario = function (usuario, callback) {\n var hoje = Date.now();\n this._conexao.query(\'INSERT INTO usuarios SET ?\', usuario, callback);\n}\n\nmodule.exports = function () {\n return UsuariosModel;\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n安慰:
\n\n\n\n错误:
\n\n\n\n\n您的服务器代码未调用response.send
.
将您的代码替换为以下代码以进行测试:
application.post('/registrar', function(req, res) {
console.log('Rota registrar');
console.log('REQ.query....' + req.params.name);
res.status(500).send('testing');
//application.app.controles.login.registraUsuario(application, req, res);
});
Run Code Online (Sandbox Code Playgroud)
在 中registraUsuario
,您需要send
使用响应/状态代码进行调用。您的客户端将阻塞,直到调用发送或发生超时。
归档时间: |
|
查看次数: |
6945 次 |
最近记录: |