我对NodeJ还是很陌生,并在这里努力构建一种方法
我们正在使用Oracle JET(javascript框架)构建应用程序,并且我们将Mysql数据库作为应用程序的后端
我的任务是使用 NODEJS
从Mysql创建 REST API作为初学者,我应该如何处理?
要在Node js中学习哪些主题?
存储过程也可以作为Rest API公开吗?
任何帮助
谢谢
答案 0 :(得分:1)
使用Express返回mysql结果非常简单,它不需要很多代码:
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);
例如,您可以转到http://localhost:3000/users,使用Curl(或浏览器)进行查询
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