在我的服务器应用程序我有一些方法,例如:的NodeJS返回异步导致作为数组
- 插入件消息,当用户连接到应用程序(
insertUserJoinedMessageAndSendMessage
) - 获得所有者移动电话号码的唯一id(
getOwnerPhoneNumberUniqueIds
) - 打印生成的数据
在该溶液中我有:
种insertUserJoinedMessageAndSendMessage(userPhoneNumbers, assignedUserId.id)
.then(function (t) {
return getOwnerPhoneNumberUniqueIds(userPhoneNumbers);
})
.then(function (result) {
log.info(result);
})
.catch(function (error) {
log.info(error);
});
方法,insertUserJoinedMessageAndSendMessage
方法做工精细,没有任何问题,我想从getOwnerPhoneNumberUniqueIds()
无极功能得到嵌套的承诺产生的数据作为getUserId()
,但log.info(result);
我不能在这部分代码打印数据,因为我不能从getOwnerPhoneNumberUniqueIds()
function insertUserJoinedMessageAndSendMessage(userPhoneNumbers, ownerUserId) {
return new Promise(function (resolve, reject) {
let query = "INSERT INTO `userJoinedMobileNumbers` (`id`, `userId`, `nameAndFamily`, `mobileNumber`, `created_at`, `updated_at`) VALUES ";
userPhoneNumbers.map(function (curr) {
query += "(NULL, " + ownerUserId + ", " + curr.contactName + ", " + curr.contactPhone + ", CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),";
});
query = query.substr(0, query.length - 1) + ";";
connection.query(query, function (err, results) {
if (err) return reject(err);
resolve(true);
});
});
}
function getOwnerPhoneNumberUniqueIds(data) {
return Promise.all(data.map(function (curr) {
return getUserId(curr.contactPhone)
.then(function (data) {
log.info("1) " + data);
return {id: data};
});
})).then(function (accountNumbers) {
log.info("2) " + accountNumbers);
return accountNumbers
}).catch(function (err) {
console.log(err);
});
}
function getUserId(contactPhone) {
return new Promise(function (resolve, reject) {
var query = "SELECT id FROM sendMessageUserJoined WHERE `phoneNumber` ='" + contactPhone + "'";
connection.query(query, function (err, results) {
if (err) return reject(err);
if (results.length > 0) {
log.info("0) " + results[0].id);
resolve(results[0].id);
}
});
});
}
在log.info("0) " + results[0].id);
返回数组我得到的SQL命令并返回结果id
成功的getOwnerPhoneNumberUniqueIds()
,我可以打印与这部分代码为log.info("1) " + data);
造成的,现在,我怎么返回上:
.then(function (accountNumbers) {
log.info("2) " + accountNumbers);
return accountNumbers
})
log.info("2) " + accountNumbers);
不其返回的return {id: data};
'查询+ = “(NULL,” + ownerUserId + “ ”+ curr.contactName +“, ”+ curr.contactPhone +“,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP),”;'SQL注入尖叫我。请考虑使用适当的SQL库来为您处理。 – kouak
@kouak这是不重要的,当我不能返回结果父,没有问题 –