Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与nodejs和mysql的连接_Javascript_Mysql_Node.js_Reactjs_Express - Fatal编程技术网

Javascript 与nodejs和mysql的连接

Javascript 与nodejs和mysql的连接,javascript,mysql,node.js,reactjs,express,Javascript,Mysql,Node.js,Reactjs,Express,我有一个来自“”的todo list应用程序,它有MongoDB数据库,所以我试图在MySQL中更改它,但我很难使用它 app.js import React, { Component } from "react"; import { BrowserRouter as Router, Route, Link } from "react-router-dom"; import "bootstrap/dist/css/bootstrap.min.css"; import CreateTodo fro

我有一个来自“”的todo list应用程序,它有MongoDB数据库,所以我试图在MySQL中更改它,但我很难使用它

app.js

import React, { Component } from "react";
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
import "bootstrap/dist/css/bootstrap.min.css";
import CreateTodo from "./components/create-todo.component";
import EditTodo from "./components/edit-todo.component";
import TodosList from "./components/todos-list.component";
import logo from "./logo.png";

var express = require('express');
var bodyParser = require('body-parser');

var connection = require('./backend/config/connection');
var routes = require('./backend/controllers/routes');

var app = express();
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

connection.init();
routes.configure(app);
var server = app.listen(4000, function(){
  console.log('Server listening on port ' + server.address().port);
});




class App extends Component {
  render() {
    return (
      <Router>
        <div className="container">
          <nav className="navbar navbar-expand-lg navbar-light bg-light">
            <a class="navbar-brand" href="https://www.youtube.com" target="_blank">
              <img src={logo} width="30" height="30" alt="CodingTheSmartWay.com" />
            </a>
            <Link to="/" className="navbar-brand">Aftab Todo App</Link>
            <div className="collpase navbar-collapse">
              <ul className="navbar-nav mr-auto">
                <li className="navbar-item">
                  <Link to="/" className="nav-link">Todos</Link>
                </li>
                <li className="navbar-item">
                  <Link to="/create" className="nav-link">Create Todo</Link>
                </li>
              </ul>
            </div>
          </nav>
          <br/>
          <Route path="/" exact component={TodosList} />
          <Route path="/edit/:id" component={EditTodo} />
          <Route path="/create" component={CreateTodo} />
        </div>
      </Router>
    );
  }
}

export default App;

}

在后端,我还尝试将程序分为三部分 1.config =>connection.js

var mysql = require('mysql');
var express = require('express');
var bodyParser = require('body-parser');

var connection = require('./backend/config/connection');
var routes = require('./backend/controllers/routes');

var app = express();
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

connection.init();
routes.configure(app);
function Connection() {
  this.pool = null;

  this.init = function() {
    this.pool = mysql.createPool({
      connectionLimit: 10,
      host: 'localhost',
      user: 'root',
      password: 'system',
      database: 'db'
    });
  };

  this.acquire = function(callback) {
    this.pool.getConnection(function(err, connection) {
      callback(err, connection);
    });
  };
}

module.exports = new Connection();

2.控制器 =>routes.js

var todo = require('../models/todo');

module.exports = {
  configure: function(app) {
    app.get('/todo',function(req,res) {
      todo.get(res);
    });
    app.get('/todo/:id',function(req,res) {
      todo.getByID(req.params.id,res);
    });
    app.post('/todo',function(req,res) {
      todo.create(req.body,res);
    });
    app.put('/todo/:id',function(req,res) {
      todo.update(req.body.name,req.params.id,res);
    });
    app.delete('/todo/:id',function(req,res) {
      todo.delete(req.params.id,res);
    });
  }
};
3.模型 =>todo.js

var connection = require ('../config/connection');

function Todo() {
  this.get = function(res) {
    connection.acquire(function(err,con) {
      con.query('select * from todos', function(err,result) {
        con.release();
        res.send(result);
        console.log("Get successful");
      });
    });
  };
  this.getByID = function(id,res) {
    connection.acquire(function(err,con) {
      con.query('select * from todos where Serial_no = ?', id, function(err,result) {
        con.release();
        res.send(result);
        console.log("Get by ID successful");
      });
    });
  };
  this.create = function(todo,res) {
    connection.acquire(function(err,con) {
      con.query('insert into todos set ?', todo, function(err,result) {
        con.release();
        if (err) {
          res.send({status:1, message:'TODO creation fail'});
        } else {
          res.send({status:0, message:'TODO create success'});
          console.log("Post successful");
        }
      });
    });
  };
  this.update = function(todo,id,res) {
    connection.acquire(function(err,con) {
      con.query('update todos set todo_completed = ? where Serial_no = ?', [todo, id], function(err,result) {
        con.release();
        if (err) {
          res.send({status:1, message:'TODO update fail'});
        } else {
          res.send({status:0, message:'TODO update success'});
          console.log("Put successful");
        }
      });
    });
  };
  this.delete = function(id,res) {
    connection.acquire(function(err,con) {
      con.query('delete from todos where Serial_no = ?', id, function(err,result) {
        con.release();
        if (err) {
          res.send({status:1, message:'TODO delete fail'});
        } else {
          res.send({status:0, message:'TODO delete success'});
          console.log("Delete successful");
        }
      });
    });
  };
};

module.exports = new Todo();


有什么问题?你有错误吗?如果您有错误,请在问题中添加主题,或解释更多您面临的问题。我认为他正在寻找git repo的解决方案:)请查看代码并指导我在哪里犯了错误。我有很多错误。当我使用server.js时,我的更新MySQL查询不起作用,我不知道如何获取网页上的数据@Ma'mounothmanI在app.js、create-todo.cpmopnent.js、edit-todo.cpmopnent.js和todo-list.component.js中没有任何问题。我在server.js中遇到了问题,如何使其模块@deepkakkar存在mysql数据库?您是否授予该用户对数据库的访问权限?您是否创建了所需的mysql表?你的控制台应该告诉你一些事情。有什么问题吗?你有错误吗?如果您有错误,请在问题中添加主题,或解释更多您面临的问题。我认为他正在寻找git repo的解决方案:)请查看代码并指导我在哪里犯了错误。我有很多错误。当我使用server.js时,我的更新MySQL查询不起作用,我不知道如何获取网页上的数据@Ma'mounothmanI在app.js、create-todo.cpmopnent.js、edit-todo.cpmopnent.js和todo-list.component.js中没有任何问题。我在server.js中遇到了问题,如何使其模块@deepkakkar存在mysql数据库?您是否授予该用户对数据库的访问权限?您是否创建了所需的mysql表?你的控制台应该告诉你一些事情。

const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const cors = require('cors');
const mysql = require('mysql');
const todoRoutes = express.Router();
const PORT = 4000;
app.use(cors());
app.use(bodyParser.json());
const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'system',
    database: 'db'
});

connection.connect(err => {
    if (err) {
        return err;
    }
});
app.use(cors());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
todoRoutes.get('/todos', (req, res) => {
    connection.query("Select * from todos",
        (err, result) => {
            if (err) {
                res.send(err)
            }
            console.log(result);
            res.send({
                data: result
            });
        }
    )

});
 app.get('/todos/:id', function (req, res) {
     connection.query('select * from todos where Serial_no=?', [req.params.id], function (error, results) {
         if (error) throw error;
        res.end(JSON.stringify(results));
    });
 });
 app.post('/todos/add', (req, res) => {
     const Serial_no = req.body.Serial_no;
     const todo_description = req.body.todo_description;
     const todo_responsible = req.body.todo_responsible;
     const todo_priority = req.body.todo_priority;
     const todo_completed = req.body.todo_completed;
     console.log(Serial_no, todo_description, todo_responsible, todo_priority, todo_completed);
     const insertQuery = 'INSERT INTO todos (todo_description,todo_responsible,todo_priority,todo_completed) VALUES (?)';
     connection.query(insertQuery, [[todo_description, todo_responsible, todo_priority, todo_completed]],
         (err, result) => {
             if (err) {
                 res.send(err)
             }

             else
                 res.status(200).send({
                     data: result, message: 'data have been added sucessfully.'
                 });
             }
     )
 });
/*
app.post('/edit', (req, res) => {
    connection.query('UPDATE todos SET todo_completed = ? WHERE Serial_no = ?', [todo_completed], function (error, results, fields) {
        (err, result) => {
            if (err) {
                res.send(err)
            }
            console.log(result);
            res.send({
                 data: result, message: 'data have been updated sucessfully.'
            });
        }
    )

}
});
*/
app.post('/todos/update/:id',(req, res) => {
    const Serial_no = req.body.Serial_no;
    const todo_description = req.body.todo_description;
    const todo_responsible = req.body.todo_responsible;
    const todo_priority = req.body.todo_priority;
    const todo_completed = req.body.todo_completed;
    console.log(Serial_no, todo_description, todo_responsible, todo_priority, todo_completed);
    connection.query('UPDATE todos SET todo_completed = ? WHERE Serial_no = ?', [todo_completed, Serial_no],
    //const updateQuery =('UPDATE todos SET todo_description = ?, todo_responsible = ?, todo_priority = ?, todo_completed = ? WHERE Serial_no = ?',
    //connection.query(updateQuery,{Serial_no: "", todo_description: "",todo_responsible: "",todo_priority: "",todo_completed: ""},
    //connection.query('UPDATE todos SET todo_description = ?, todo_responsible = ?, todo_priority = ?, todo_completed = ? WHERE Serial_no = ? :Serial_no',
                     //{Serial_no: Serial_no, todo_description: todo_description,todo_responsible: todo_responsible,todo_priority: todo_priority,todo_completed: todo_completed});
    //connection.query(updateQuery, [[Serial_no,todo_description, todo_responsible, todo_priority, todo_completed]],
    (err, result) => {
        if (err) {
            res.send(err)
        }

        else
            res.status(200).send({
                data: result, message: 'data have been updated sucessfully.'
            });
        }
)
});

app.use('/todos', todoRoutes);
app.listen(PORT, function () {
    console.log("Server is running on Port: " + PORT);
});

var mysql = require('mysql');
var express = require('express');
var bodyParser = require('body-parser');

var connection = require('./backend/config/connection');
var routes = require('./backend/controllers/routes');

var app = express();
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

connection.init();
routes.configure(app);
function Connection() {
  this.pool = null;

  this.init = function() {
    this.pool = mysql.createPool({
      connectionLimit: 10,
      host: 'localhost',
      user: 'root',
      password: 'system',
      database: 'db'
    });
  };

  this.acquire = function(callback) {
    this.pool.getConnection(function(err, connection) {
      callback(err, connection);
    });
  };
}

module.exports = new Connection();

var todo = require('../models/todo');

module.exports = {
  configure: function(app) {
    app.get('/todo',function(req,res) {
      todo.get(res);
    });
    app.get('/todo/:id',function(req,res) {
      todo.getByID(req.params.id,res);
    });
    app.post('/todo',function(req,res) {
      todo.create(req.body,res);
    });
    app.put('/todo/:id',function(req,res) {
      todo.update(req.body.name,req.params.id,res);
    });
    app.delete('/todo/:id',function(req,res) {
      todo.delete(req.params.id,res);
    });
  }
};
var connection = require ('../config/connection');

function Todo() {
  this.get = function(res) {
    connection.acquire(function(err,con) {
      con.query('select * from todos', function(err,result) {
        con.release();
        res.send(result);
        console.log("Get successful");
      });
    });
  };
  this.getByID = function(id,res) {
    connection.acquire(function(err,con) {
      con.query('select * from todos where Serial_no = ?', id, function(err,result) {
        con.release();
        res.send(result);
        console.log("Get by ID successful");
      });
    });
  };
  this.create = function(todo,res) {
    connection.acquire(function(err,con) {
      con.query('insert into todos set ?', todo, function(err,result) {
        con.release();
        if (err) {
          res.send({status:1, message:'TODO creation fail'});
        } else {
          res.send({status:0, message:'TODO create success'});
          console.log("Post successful");
        }
      });
    });
  };
  this.update = function(todo,id,res) {
    connection.acquire(function(err,con) {
      con.query('update todos set todo_completed = ? where Serial_no = ?', [todo, id], function(err,result) {
        con.release();
        if (err) {
          res.send({status:1, message:'TODO update fail'});
        } else {
          res.send({status:0, message:'TODO update success'});
          console.log("Put successful");
        }
      });
    });
  };
  this.delete = function(id,res) {
    connection.acquire(function(err,con) {
      con.query('delete from todos where Serial_no = ?', id, function(err,result) {
        con.release();
        if (err) {
          res.send({status:1, message:'TODO delete fail'});
        } else {
          res.send({status:0, message:'TODO delete success'});
          console.log("Delete successful");
        }
      });
    });
  };
};

module.exports = new Todo();