首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用猫鼬模型

无法使用猫鼬模型
EN

Stack Overflow用户
提问于 2016-11-29 07:23:23
回答 1查看 94关注 0票数 2

我正在用猫鼬编写一个简单的注册表格。我已经使用javascript文件来处理注册表格的值。

这是我的registrationButtonAction.js

代码语言:javascript
运行
复制
window.onload = function() {

    var User = require('/models/Mongoose Database/user_database');
    // this line is causing the problem


    var registerButton = document.getElementById("registerMe");
    var firstName = document.getElementById("firstName");
    var lastName = document.getElementById("lastName");
    var usernameRegister = document.getElementById("usernameRegister");
    var passwordRegister = document.getElementById("passwordRegister");
    var repasswordRegister = document.getElementById("repasswordRegister");


    registerButton.onclick = function () {

       if(!firstName.value || !passwordRegister.value || !repasswordRegister.value || !usernameRegister.value){
           alert("Enter all required fields");
       }else if (passwordRegister.value != repasswordRegister.value){
            alert("Passwords must match");
       }else {
           var newUser = new User({
                       username : usernameRegister.value,
                       password : passwordRegister.value
                   });
               User.find({username:usernameRegister.value}, function (error, user) {

                       if (error) throw error;

                       if(user){
                           window.location("/register");
                       }else {
                           newUser.save(function (error) {
                               if(error) throw error;
                           });
                           window.location("/login");
                       }
                       // user.comparePassword(passwordRegister.value, function (error, isMatch) {
                       //     if (error) throw error;
                       //
                       //     return 1;

                       //})
               });

       }

    }


}

当我注释var User = require('/models/Mongoose Database/user_database');时,所有检查在onclick函数中都正常工作。但是,当我取消评论时,它并不是识别按钮单击。

我想知道这是否是从注册页面获取值并将其存储在猫鼬数据库中的正确方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-29 07:33:23

您正在混合服务器和客户端代码。猫鼬模型和Node.js函数在客户端的window.onload中是不可访问的。

简单地说,您需要创建一个REST来在服务器上执行数据库操作。你有所有正确的工具,只是需要重新排序。

流动情况如下:

  • 获取浏览器中输入的值。
  • 调用服务器上的端点(例如/api/createUser)
  • 在express路由器中,有一个名为/api/createUser的路由,您可以在其中访问用户模型并执行创建/删除/更新等操作。

我的建议是让您通过本教程,这将消除您的混乱,并使您的速度在任何时候。祝好运!

同时,Passport可以帮助您进行身份验证,但我认为您应该首先学习如何构建一个基本的API。认证是一个棘手的问题;)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40859960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档