- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我按照问题答案的规定使用了 queryAsync()
,它确实有效,但它向我的查询结果添加了大量额外的元数据,否则这是一个简单的查询。
这是我用来处理/执行查询并记录结果的内容:
var retrieveSettings = Promise.method(function (username, connection) {
console.log('User ' + username + ' retrieving settings...');
var q = 'select * from sales_settings';
return connection.queryAsync(q).then(function (rows, fields) {
list = [];
for (x = 0; x < rows.length; x++) {
list.push(rows[x]);
}
//console.log('Settings: ' + JSON.stringify(list, null, 4));
return list;
});
});
这是记录的结果:
Settings: [
[
{
"group_name": "add_auto",
"commission_rate": 0,
"monthly_req": 0,
"category_name": "Auto",
"commission_type": "none",
"group_title": "Added Auto"
},
{
"group_name": "add_fire",
"commission_rate": 0,
"monthly_req": 0,
"category_name": "Fire",
"commission_type": "none",
"group_title": "Added Fire"
},
{
"group_name": "bank_dep",
"commission_rate": 25,
"monthly_req": 0,
"category_name": "Bank",
"commission_type": "static",
"group_title": "Bank Deposit"
},
{
"group_name": "bank_loan",
"commission_rate": 75,
"monthly_req": 8,
"category_name": "Bank",
"commission_type": "static",
"group_title": "Bank Loan"
},
{
"group_name": "health",
"commission_rate": 0.084,
"monthly_req": 4,
"category_name": "Health",
"commission_type": "premium",
"group_title": "Health App"
},
{
"group_name": "life",
"commission_rate": 0.084,
"monthly_req": 8,
"category_name": "Life",
"commission_type": "premium",
"group_title": "Life App"
},
{
"group_name": "new_auto",
"commission_rate": 0.03,
"monthly_req": 32,
"category_name": "Auto",
"commission_type": "rate",
"group_title": "Raw New Auto"
},
{
"group_name": "new_fire",
"commission_rate": 0.03,
"monthly_req": 20,
"category_name": "Fire",
"commission_type": "rate",
"group_title": "Raw New Fire"
}
],
[
{
"catalog": "def",
"db": "officeball",
"table": "sales_settings",
"orgTable": "sales_settings",
"name": "group_name",
"orgName": "group_name",
"filler1": [
12
],
"charsetNr": 33,
"length": 135,
"type": 253,
"flags": 20483,
"decimals": 0,
"filler2": [
0,
0
],
"zeroFill": false,
"protocol41": true
},
{
"catalog": "def",
"db": "officeball",
"table": "sales_settings",
"orgTable": "sales_settings",
"name": "commission_rate",
"orgName": "commission_rate",
"filler1": [
12
],
"charsetNr": 63,
"length": 13,
"type": 246,
"flags": 4097,
"decimals": 3,
"filler2": [
0,
0
],
"zeroFill": false,
"protocol41": true
},
{
"catalog": "def",
"db": "officeball",
"table": "sales_settings",
"orgTable": "sales_settings",
"name": "monthly_req",
"orgName": "monthly_req",
"filler1": [
12
],
"charsetNr": 63,
"length": 11,
"type": 3,
"flags": 4097,
"decimals": 0,
"filler2": [
0,
0
],
"zeroFill": false,
"protocol41": true
},
{
"catalog": "def",
"db": "officeball",
"table": "sales_settings",
"orgTable": "sales_settings",
"name": "category_name",
"orgName": "category_name",
"filler1": [
12
],
"charsetNr": 33,
"length": 135,
"type": 253,
"flags": 4097,
"decimals": 0,
"filler2": [
0,
0
],
"zeroFill": false,
"protocol41": true
},
{
"catalog": "def",
"db": "officeball",
"table": "sales_settings",
"orgTable": "sales_settings",
"name": "commission_type",
"orgName": "commission_type",
"filler1": [
12
],
"charsetNr": 33,
"length": 135,
"type": 253,
"flags": 4097,
"decimals": 0,
"filler2": [
0,
0
],
"zeroFill": false,
"protocol41": true
},
{
"catalog": "def",
"db": "officeball",
"table": "sales_settings",
"orgTable": "sales_settings",
"name": "group_title",
"orgName": "group_title",
"filler1": [
12
],
"charsetNr": 33,
"length": 72,
"type": 253,
"flags": 4097,
"decimals": 0,
"filler2": [
0,
0
],
"zeroFill": false,
"protocol41": true
}
]
]
为什么将这种不寻常的元数据添加到我的查询结果中?
最佳答案
看起来你正在使用 bluebird,在这种情况下你可以使用 .spread
:
var retrieveSettings = Promise.method(function (username, connection) {
console.log('User ' + username + ' retrieving settings...');
var q = 'select * from sales_settings';
return connection.queryAsync(q).spread(function (rows, fields) {
list = [];
for (x = 0; x < rows.length; x++) {
list.push(rows[x]);
}
//console.log('Settings: ' + JSON.stringify(list, null, 4));
return list;
});
});
mysql 模块的问题在于它不符合(err, result)
的node js 回调标准。相反,它使用 (err, result1, result2)
。因为函数只能抛出一个异常或返回一个值,bluebird 返回一个[result1, result2]
的数组来避免信息丢失。
.spread
与 .then
类似,只是它假定 fulfulliment 值是一个数组并将数组的值散布到参数上。
关于javascript - 为什么 queryAsync() 会导致添加元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22676475/
我按照问题答案的规定使用了 queryAsync(),它确实有效,但它向我的查询结果添加了大量额外的元数据,否则这是一个简单的查询。 这是我用来处理/执行查询并记录结果的内容: var retriev
我在 C# 中有这个任务,我想使用 dapper 在 MySql 中调用一个存储过程。 public async Task> GetTable() { using (MySql
我正在尝试测试我的存储库方法,它使用 QueryAsync() 并且它在一个事务中。所以我在模拟 IDbConnection 和 IDbTransaction。但是当我运行测试用例时它给出了一个错误
不幸的是,我们的数据库可以追溯到 90 年代。它的遗产是如此强大,以至于我们仍在使用 SP 来完成大部分的 CRUD 操作。然而,Dapper 似乎很适合我们,我们才刚刚开始使用它。 但是,我有点担心
为什么我不能在 Query 上正常使用 .select 时在 Query 上使用它? 例如,这里 .select 对我大喊大叫,告诉我它无法解析符号“select”: var result = awa
我正在使用 dapper 和 C#7 ValueTuples(已安装的 nuget)执行以下查询: await connection.QueryAsync( $@"SE
我正在使用异步等待构建nodejs api。所以我的 Controller 每个函数都是异步的,它通过模型接收 promise 。对于查询,我使用了sequelize包来与数据库交互。为了使用sequ
在这里使用 .net core api (c#) 和 dynamodb。 我的 dbmanager 类为: public class DbManager : DynamoDBContext, IDyn
使用此代码(有或没有“.ToList()”): public async Task> SelectDistinctGroupNames() { var db = new SQLiteAsync
我正在更新我的项目以使用 Azure.Data.Tables 12.6.1,但我不知道在哪里指定 Take 值来限制从查询返回的实体数。 换句话说,我想做这样的事情: var limit = 150;
我正在使用 Azure.Data.Tables 包和 TableClient.QueryAsync() 方法来获取查询结果。我希望结果将其用于分页。我在 https://learn.microsoft
我正在使用 Azure.Data.Tables 包和 TableClient.QueryAsync() 方法来获取查询结果。我希望结果将其用于分页。我在 https://learn.microsoft
我尝试使用以下代码,但它不起作用。 public void deleteRow(int index) { conn.QueryAsync("D
未处理的拒绝错误:握手不活动超时。我运行应用程序并在连接到数据库期间收到错误以防获取数据。我删除了 node_modules 文件夹。通过 nvm 将 Node 版本从 4.4.7 更改为 6.10.
我有一个执行检查并返回一行或非零返回值的存储过程: CREATE PROCEDURE dbo.ConditionalGet @ID INT AS BEGIN -- this is a
首先,我认为第一次只是一个条件,可以更清楚地看到这种阻塞。对于下一次,它仍会以某种方式稍微阻塞 UI,但不像不使用异步时那样明显。 我可以这么说,因为我可以看出使用 QueryAsync 之间的区别和
下面给出的是我用来从 Dynamodb 表中检索详细信息的方法。但是当我调用这个方法时,它最终抛出了一个异常“无法找到关键属性任命 ID 的属性”。这个特定表的主键是appointmentId,但我已
为什么在此方法上调用 .Result 会导致 TaskCanceledException: public Task> GetAsync() { using (var conn = new Sq
我正在运行以下查询,其中包含 Case 和 Account 之间的子 => 父关系 - 并在 SELECT 中包含 Account.Name: string query = "SELECT Case.
在使用 dapper 的 QueryAsync 方法时,使用 connection.OpenAsync() 和 connection.Open() 有什么区别。 异步: public async Ta
我是一名优秀的程序员,十分优秀!