Довольно просто вернуть результаты 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"
}]
Я добавил path / 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