所以我正在使用nodejs 为mySQL 开发一个API。尝试创建一个插入两个不同表的函数。
INSERT INTO account_details (username, first_name, last_name, gender, mobile_number, postal_code, email, activated) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
和
INSERT INTO passwords (username, password) VALUES (?, ?)
正确的做法是什么?
现在我有了这个,它工作得很好,除了它使我的nodejs服务器崩溃,给出下面的错误。
addUser(request, respond) {
var userObject = new User(request.body.username, request.body.password, request.body.first_name, request.body.last_name, request.body.gender, request.body.mobile_number, request.body.postal_code, request.body.email, request.body.activated, null, null);
var sql = "INSERT INTO account_details (username, first_name, last_name, gender, mobile_number, postal_code, email, activated) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
var password = "INSERT INTO passwords (username, password) VALUES (?, ?)";
var values = [userObject.getUsername(), userObject.getFirstName(), userObject.getLastName(), userObject.getGender(),
userObject.getMobileNumber(), userObject.getPostalCode(), userObject.getEmail(), userObject.getActivated()];
var passvalues = [userObject.getUsername(), userObject.getPassword()];
db.query(sql, values, function (error, result) {
if (error) {
throw error;
}
else {
respond.json(result);
}
});
db.query(password, passvalues, function (error, result) {
if (error) {
throw error;
}
else {
respond.json(result);
}
});
}
Error: Can't set headers after they are sent.
任何人都可以帮助正确的语法吗?提前致谢。
最佳答案
您可以按如下方式更改代码:
addUser(request, respond) {
var userObject = new User(request.body.username, request.body.password, request.body.first_name, request.body.last_name, request.body.gender, request.body.mobile_number, request.body.postal_code, request.body.email, request.body.activated, null, null);
var sql = "INSERT INTO account_details (username, first_name, last_name, gender, mobile_number, postal_code, email, activated) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
var password = "INSERT INTO passwords (username, password) VALUES (?, ?)";
var values = [userObject.getUsername(), userObject.getFirstName(), userObject.getLastName(), userObject.getGender(),
userObject.getMobileNumber(), userObject.getPostalCode(), userObject.getEmail(), userObject.getActivated()];
var passvalues = [userObject.getUsername(), userObject.getPassword()];
db.query(sql, values, function (error, result) {
if (error) {
throw error;
}
else {
db.query(password, passvalues, function (error, result) {
if (error) {
throw error;
}
else {
respond.json(result);
}
});
}
});
}
关于javascript - 在一个函数中运行 2 个查询的正确 RESTful API 实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59607784/