我有一段简单的代码将用户添加到我的应用程序中,该数据将数据插入到我的后端cassandra数据库中。由于某些原因,“提交”按钮不起作用。它不会给出任何错误。
JS档案:
var express = require('express');
var router = express.Router();
var cassandra = require('cassandra-driver');
var client = new cassandra.Client({contactPoints : ['<DatabaseIP>']});
client.connect(function(err, result){
console.log('cassandra connected: adduser');
});
router.get('/', function(req, res){
res.render('adduser');
});
var upsertUser = 'INSERT INTO tablename(username, password, email, name) VALUES(?,?,?,?)';
router.post('/', function(req, res){
client.execute(upsertUser, [req.body.username,req.body.password,req.body.email,req.body.name],
function(err, result){
if(err){
res.status(404).send({msg: err});
} else{
console.log ('User Added');
res.redirect ('/users');
}
});
});
module.exports = router;
玉文件:
extends layout
block content
h1 Add User
form#formAddUser(name="adduser", method="post", action="/adduser")
div
input#inputUserName(type="text", placeholder ="Enter Username", name="username")
div
input#inputPassword(type="password", placeholder ="Enter Password", name="password")
div
input#inputEmail(type="text", placeholder ="Enter Email Address", name="email")
div
input#inputName(type="text", placeholder ="Enter Full Name", name="name")
div
button#btnSubmit(type="submit") Submit
答案 0 :(得分:2)
查看生成的HTML!
<h1>Add User</h1>
<form id="formAddUser" name="adduser" method="post" action="/adduser"></form>
<div>
<input id="inputUserName" type="text" placeholder="Enter Username" name="username"/>
</div>
<div>
<input id="inputPassword" type="password" placeholder="Enter Password" name="password"/>
</div>
<div>
<input id="inputEmail" type="text" placeholder="Enter Email Address" name="email"/>
</div>
<div>
<input id="inputName" type="text" placeholder="Enter Full Name" name="name"/>
</div>
<div>
<button id="btnSubmit" type="submit">Submit</button>
</div>
您的按钮不在表单内(也不是任何其他控件)。
您需要缩进它们才能让它们成为表单的一部分。
block content
h1 Add User
form#formAddUser(name="adduser", method="post", action="/adduser")
div
input#inputUserName(type="text", placeholder ="Enter Username", name="username")
div
input#inputPassword(type="password", placeholder ="Enter Password", name="password")
div
input#inputEmail(type="text", placeholder ="Enter Email Address", name="email")
div
input#inputName(type="text", placeholder ="Enter Full Name", name="name")
div
button#btnSubmit(type="submit") Submit
答案 1 :(得分:-1)
更改
form#formAddUser(name="adduser", method="post", action="/adduser")
到
form#formAddUser(name="adduser", method="POST", action="/")
目前的帖子请求处理是针对'/'编写的,而不是'/ adduser'和方法文本