Node-JS выставляет Mysql DB в качестве службы отдыха

0

Я очень новичок в NodeJs и изо всех сил пытаюсь создать подход здесь

Мы создаем приложение с Oracle JET (javascript Framework), и у нас есть базы данных Mysql в качестве базы для нашего приложения

Моя задача - создать REST API из Mysql, используя NODEJS

Как начинающий, как мне подойти к этому?

Какие темы будут изучены в Node js для этого?

Могут ли хранимые процедуры также отображаться как Rest API?

Любая помощь

Спасибо

Теги:
node-modules

1 ответ

1

Достаточно просто вернуть результаты mysql с помощью Express, это не займет много строк кода:

 const express = require("express");
const mysql   = require('mysql');

const connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : 'root',
    database : 'my_db'
});

connection.connect((err) => {
     if(err) {
         console.error("Error connecting to db: ", err); 
     } else {
         console.log("Connected to db successfully"); 
     }
});

const app = express();

app.get("/users", (req,res) => {

    connection.query('SELECT * FROM Users', (err, rows, fields) => {

        if (err) {
            console.error('Error while performing query: ', err);
        } else {
            console.log('Result: ', rows);
            // Send to caller as json
            res.json(rows);
        }

    });
});

// Call Stored Proc 'GetUsers'
app.get("/get_users", (req,res) => {

    connection.query('CALL GetUsers()', (err, rows, fields) => {

        if (err) {
            console.error('Error while performing query: ', err);
        } else {
            console.log('Result: ', rows);
            // Send to caller as json
            res.json(rows);
        }

    });
});

app.listen(3000);

Вы можете запросить использование Curl (или вашего браузера), перейдя по адресу http://localhost: 3000/users, например

curl http://localhost:3000/users

Вы получите такой результат:

[{
    "firstName": "Craig",
    "lastName": "Michaels"
},
{
    "firstName": "Jim",
    "lastName": "Thomson"
},
{
    "firstName": "Abigail",
    "lastName": "Moore"
}]

Я добавил путь /get_users, который вызывает хранимую процедуру GetUsers() (определенную ниже):

DROP PROCEDURE IF EXISTS GetUsers; 
DELIMITER // 
CREATE PROCEDURE GetUsers() 
BEGIN 
    SELECT * from Users ;
END // 
DELIMITER ;

Пользователи таблицы похожи на:

create table users ( firstName varchar(100), lastName varchar(100)  );

Мы можем назвать это через:

curl http://localhost:3000/get_users
  • 0
    Спасибо за ответ. Можем ли мы выставить хранимую процедуру тоже, как указано выше?
  • 0
    Конечно, я обновлю пост!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню