Я очень новичок в NodeJs и изо всех сил пытаюсь создать подход здесь
Мы создаем приложение с Oracle JET (javascript Framework), и у нас есть базы данных Mysql в качестве базы для нашего приложения
Моя задача - создать REST API из Mysql, используя NODEJS
Как начинающий, как мне подойти к этому?
Какие темы будут изучены в Node js для этого?
Могут ли хранимые процедуры также отображаться как Rest API?
Любая помощь
Спасибо
Достаточно просто вернуть результаты 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