获得"无法发布"使用Sequelize注册页面

时间:2017-09-03 19:36:31

标签: node.js postgresql express sequelize.js

我确定有一个合理的理由说明为什么我无法让这个工作,但我已经盯着代码很长一段时间而且我是残酷地卡住了。我试图构建一个非常基本的注册表单,该表单应该将数据存储在我的PostgreSQL数据库中。我使用bcrypt来破解密码,但即使没有问题。

我的HTML有以下内容:

<form action="/register/new" method="post">
  <label for="username">Username</label>
  <input type="text" name="username">
  <label for="password">Password</label>
  <input type="password" name="password">
  <label for="confirm">Confirm Password</label>
  <input type="password" name="confirm">
  <button type="submit">Submit</button>
</form>

然后是我的代码:

app.get("/register", function(req,res){
  res.render("register");
})

app.post('register', function(req,res){
  let newUser = {
    username: req.body.username,
    passwordHash: bcrypt.hashSynce(req.body.password, 8)
  }
  models.Users.create(newUser).then(function(){
    res.redirect('/login');
   })
 });

要存储的注册数据和用户重定向到登录页面的计划,登录将它们存储在会话中,等等。我想了一下,问题是表单上的操作,但无论我得到不能POST /注册/新。我也在做一个findOrCreate并进行比较,但我想在开始之前实际上只是创建它之前让它变得更复杂。无法发布同样的问题。

对我需要改变什么的想法?

2 个答案:

答案 0 :(得分:0)

如果我做了app.post(“/ register”......

),可能会更好

简单地错过了一个“/”

答案 1 :(得分:0)

尝试修改此代码...

app.post('/register', function(req,res) {
  let newUser = {
    username: req.body.username,
    passwordHash: bcrypt.hashSync(req.body.password, 8)
  }
  // if it does not connect/save try using models.User instead of models.Users below.
  models.Users.create(newUser).then(function(){
    res.location('/login');
    res.redirect('/login');
  })
});