简体   繁体   English

mySQL和javascript。 似乎无法使用javascript更新我的数据库

[英]mySQL & javascript. Can't seem to UPDATE my database using javascript

I'm fairly new to programming itself and I am currently trying to create a food reviewing website for my school project. 我对编程本身还很陌生,目前正在尝试为我的学校项目创建一个食品评论网站。 Currently, I am stuck trying to get my javascript to update my data to my database in SQL. 目前,我一直在尝试获取JavaScript以将数据更新到SQL中的数据库。

We were taught to use a controller, model, routing and the db-connection to connect to our database. 我们被教导要使用控制器,模型,路由和数据库连接来连接到我们的数据库。 I will try to only put the codes that are relevant to my question in here. 我将尝试仅在此处输入与我的问题相关的代码。 Hopefully, it will be enough to see what is going on. 希望足以看到正在发生的事情。

(edit) I forgot to mention that I am supposed to use Postman to test that my codes are indeed changing the data in my database! (编辑)我忘了提到我应该使用Postman来测试我的代码确实正在更改数据库中的数据!

I still don't quite understand it still but here are my codes: 我仍然不太了解它,但是这是我的代码:

my models I have 2: user.js is first 我拥有的模型2: user.jsuser.js

"use strict"
class user {
    constructor(userID, username, password, email){
        this.userID = userID;
        this.username = username;
        this.password = password;
        this.email = email;
    }


    //Get
    getUserID()
    {
        return this.userID;
    }

    getUsername()
    {
        return this.username;
    }

    getPassword()
    {
        return this.password;
    }

    getEmail()
    {
        return this.email;
    }


    //Set
    setUsername(username)
    {
        return this.username;
    }  

    setPassword(password)
    {
        return this.password;
    }

    setEmail(email)
    {
        return this.email;
    }

}

module.exports = user;

Next up is my userDB.js : 接下来是我的userDB.js

"use strict"

var db = require('../db-connection');

class userDB {

    changePassword(user, username, password, callback){

        var sql = "UPDATE user SET password = ? WHERE username = ?"

        console.log("username: " + username + " Password: " + password);


        db.query(sql, [user.setPassword(), user.getUsername()] , callback);
    }

}

module.exports = userDB;

I have my controller as well named userController.js : 我的控制器也名为userController.js

"use strict";

const User = require('../models/user');
const UserDB = require('../models/userDB');
var userDB = new UserDB();

function changePassword(request, respond){

    var user = new User();

    userDB.changePassword(user, request.params.username, request.body.password, function (error, result)
    {

        if (error) {
            respond.json(error);

        } else {
            respond.json(result);
        }
    });
}

module.exports = { signUp, deleteAccount, getAllUsers, changePassword };

I have my routing codes as well, this one is called routeUser.js : 我也有我的路由代码,这个称为routeUser.js

"use strict";

const userController = require('../controllers/userController');

function changePassword(app){
    app.route('/userChangePassword/:username')
        .put(userController.changePassword);
}

module.exports = { userSignUp, userDeleteAccount, getAllUsers, changePassword };

And finally my server.js file: 最后是我的server.js文件:

"use strict";

const express = require('express');
//Controllers

const routeUser = require('./routes/routeUsers');

const bodyParser = require('body-parser');

var app = express();
var host = "127.0.0.1";
var port = 8080;
var home_file = "/index.html";

app.use(express.static('./public'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());


//User

routeUser.changePassword(app);


function gotoIndex(f, request, respond) {
    respond.sendFile(__dirname + f);
}

app.get(home_file, gotoIndex);

// Starts the Web Server
var server = app.listen(port, host, function() {
    var host = server.address().address;
    var port = server.address().port;

    console.log("Example app listening at http://%s:%s", host, port);
});

I think your setters should be something like this : 我认为您的二传手应该是这样的:

//Set
setUsername(username)
{
     this.username = username;//then call the save() method if require > kind of this.save()
}  

setPassword(password)
{
    this.password = password;//then call the save() method if require > kind of this.save()
}

setEmail(email)
{
     this.email = email;//then call the save() method if require > kind of this.save()
}

If you use an ORM (for persistence), you can able to have save() or persist() stuff; 如果使用ORM(用于持久性),则可以具有save()persist()东西; unless you need to implement the save() [or CRUD if you need] method yourself 除非您需要自己实现save()[或需要时使用CRUD]方法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 对 Javascript 非常陌生。 似乎无法让 1 个函数在我的代码中工作(berekenBedrag)。 需要计算总数 - Very new to Javascript. Can't seem to get 1 function to work in my code (berekenBedrag). Needs to calculate the total 我似乎无法弄清楚如何修复JavaScript中的两个棉绒。 有人可以帮我理解吗? - I can't seem to figure out how to fix two lints in my javascript. Can someone help me understand? 使用JAVASCRIPT转换货币。 无法通过我的函数设置转换后的输入文本字段的值 - Converting currencies using JAVASCRIPT. can't set the value of converted input text field through my function 在jQuery / JavaScript中使用Promise时遇到麻烦。 脚本似乎没有等待 - Having trouble using promises in jQuery/JavaScript. Script doesn't seem to wait 无法使用PHP和JavaScript更新数据库 - Can't update database using PHP and JavaScript Javascript。 无法获得元素样式 - Javascript. Can't get element style Javascript。 为什么我的字符串替换更新不会显示在我的浏览器中 - Javascript. Why won't my string replace update show in my browser 无法使用Cookie将Cookie保存到表单中。 Java的新手 - Can't get cookies to save in form using JavaScript. New to Javascript 似乎无法使用带有JavaScript的node-mysql查询特定内容 - Can't seem to query specific things using node-mysql with JavaScript 似乎无法处理Javascript - Can't seem to handle Javascript
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM