我有一个API调用,它需要从MySQL数据库中提取一些信息,以便完成请求。问题是,NodeJS不会等待查询响应,我已经尝试用承诺来解决这个问题。下面是我的代码:
app.post('/placeOrder', function (req, res) {
var username = decryptAccessToken(req.body.AuthToken);
console.log(username);
con.query("INSERT INTO Orders SET ?", fetchCustomerInfo(username, req.body.orderInfo), function (err, response) {
if (!err) {
console.log("Order successfully placed");
res.send("Order successfully placed");
} else {
console.log(err);
}
});
});
async function fetchCustomerInfo(username, orderInfo) {
const query = new Promise((resolve, reject) => {
con.query("SELECT FirstName, LastName, Address, Email, Phone FROM Customers WHERE Email=?", username, function (err, response) {
var createOrder = {
FirstName: response.FirstName,
LastName: response.LastName,
Address: response.Address,
Email: response.Email,
Phone: response.Phone,
ProductInfoJSON: orderInfo
}
console.log(createOrder);
resolve();
return createOrder;
})
})
await query;
return query;
}
这个FetchCustomerInfo
函数将返回Promise对象,这将触发SQL语法错误,因为这不是预期的数据库输入。我做错了什么?任何建议都非常感谢。
试试看:
app.post('/placeOrder', async function (req, res) {
var username = decryptAccessToken(req.body.AuthToken);
console.log(username);
var firstQuery = await fetchCustomerInfo(username, req.body.orderInfo);
con.query("INSERT INTO Orders SET ?", firstQuery, function (err, response) {
if (!err) {
console.log("Order successfully placed");
res.status(200).send("Order successfully placed");
} else {
console.log(err);
res.status(500).send("Error!");
}
});
});
function fetchCustomerInfo(username, orderInfo) {
return new Promise((resolve, reject) => {
con.query("SELECT FirstName, LastName, Address, Email, Phone FROM Customers WHERE Email=?", username, function (err, response) {
var createOrder = {
FirstName: response.FirstName,
LastName: response.LastName,
Address: response.Address,
Email: response.Email,
Phone: response.Phone,
ProductInfoJSON: orderInfo
}
console.log(createOrder);
resolve(createOrder);
})
})
}
问题内容: 我对Oracle SQL查询并不十分了解,因此在删除表中的某些行时遇到了一个问题,该行必须满足一个约束,该约束包括另一个(联接)表的字段。换句话说,我想编写一个查询来删除包括JOIN的行。 在我的情况下,我有一个表和另一个连接在字段上的表。我想从大于或等于200的行中删除行,并且它们引用的产品具有名称“ Mark”(名称是“产品”中的一个字段)。 我想首先被告知Oracle中的Dele
问题内容: 我在应该是一个非常简单的脚本方面遇到了麻烦。我只是想使用Python pyodbc模块创建一个新的SQL Server数据库。当我在SQL Server2012中执行该参数时,我尝试传递的“ sqlcommand”参数完美运行,但是此python脚本失败了。不知道出了什么问题,有人有什么想法吗? 和错误: 问题答案: 是SQL Server ManagementStudio中的批处理终
问题内容: 我有一个很大的Excel工作表,看起来与此类似: 我要做的是创建一个新的动态生成的表格,其中显示了所有人员。 在SQL中,这将是同步:。我以前从未在excel中使用过VBA(我是一位经验丰富的PHP / Javascript程序员,并且已在MS Access中使用过VBA),所以我正在寻找初学者的指导以帮助我入门。也许有人可以推荐一个简单的教程或博客文章,其功能类似于我需要做的事情?
问题内容: 我们正在尝试为本地sql查询动态生成IN子句以返回JPA实体。Hibernate是我们的JPA提供程序。我们的代码看起来像这样。 这是行不通的,in子句无法识别通过这种方式传入的任何值。有谁知道解决这个问题的方法吗? 问题答案: 在您的情况下,JPA支持命名列表参数:
问题内容: 我对Doctrine Symfony中SQL查询的翻译有疑问。我想做这样的事情: 在此示例中,我搜索用户99的所有朋友。 My tables : Member: (id, name, visible) Friend: (id, id_member, id_friend, active) 精度:我想使用Symfony传呼机。 一个解法 ?谢谢 ! 问题答案: DQL不支持UNION,但是
为了给出backfround,我使用