【发布时间】:2020-09-01 20:21:12
【问题描述】:
我正在学习 React,其中一个步骤是学习如何使用 Express 服务器和 Mysql 数据库连接到数据库。在遇到教程之前,我做得很好。正如我在 Stackoverflow 中阅读的许多地方一样,关于所有这些的教程假设学习者达到一定水平似乎是很常见的事情。这是其中一种情况。
与其把你的时间浪费在问题中并不重要的部分上,我只会询问我遇到困难的确切部分。我正在关注的教程如下: https://www.edureka.co/blog/node-js-mysql-tutorial/
一切都很顺利,直到我来到它说的部分: "输入下面的代码来定义所有需要的例程:
learnerAddOrEdit"
首先,您必须创建程序:
CREATE DEFINER=`root`@`localhost` PROCEDURE `learnerAddOrEdit`(
IN _learner_id INT,
IN _learner_name VARCHAR(45),
IN _learner_email VARCHAR(45),
IN _course_Id INT
)
BEGIN
IF _learner_id = 0 THEN
INSERT INTO learnerdetails(learner_name,learner_email,course_Id)
VALUES (_learner_name,_learner_email,_course_Id);
SET _learner_id = last_insert_id();
ELSE
UPDATE learnerdetails
SET
learner_name = _learner_name,
learner_email = _learner_email,
course_Id = _course_Id
WHERE learner_id = _learner_id;
END IF;
SELECT _learner_id AS 'learner_id';
END
一切顺利,并且它已创建。然后,您必须将代码添加到 Script.js:
//Router to INSERT/POST a learner's detail
app.post('/learners', (req, res) => {
let learner = req.body;
var sql = "SET @learner_id = ?;SET @learner_name = ?;SET @learner_email = ?;SET @course_Id = ?;
CALL learnerAddOrEdit(@learner_id,@learner_name,@learner_email,@course_Id);";
mysqlConnection.query(sql, [learner.learner_id, learner.learner_name, learner.learner_email, learner.course_Id], (err, rows, fields) => {
if (!err)
rows.forEach(element => {
if(element.constructor == Array)
res.send('New Learner ID : '+ element[0].learner_id);
});
else
console.log(err);
})
});
这也很顺利。然后它要求您在 Postman 中发布请求(抱歉,他们只在此处提供图片):
1]:https://i.stack.imgur.com/1S4Nb.png
这就是我卡住的地方。我按照上面示例图像所示的相同方式进行操作,但我遗漏了一些东西。我的请求如下所示:
我错过了什么?我看到教程示例以某种方式插入了“新学习者 ID:5328”,但我不知道这是在哪里完成的。
我为这个问题道歉,我显然是个菜鸟,根据我在网上找到的教程,很难学习这种与数据库部分的连接。非常感谢您的帮助:D 如果我没有很好地解释问题,请告诉我,我很乐意提供更多信息。
最好的,雨果
【问题讨论】:
标签: mysql node.js reactjs express