我正在寻找关于在nodeJS应用程序中使用什么的答案.
我有代码处理我对mssql的通用dB访问.这段代码是使用async函数编写的,然后我使用了一个承诺调用该函数,一切正常.
随着我的应用程序越来越大,代码越来越大,我计划将一些逻辑转移到函数中然后调用它们.
所以我的问题是:使用async/await和promises的组合是否有缺点,或者它真的无关紧要?
Async/await使编写更易读的代码变得更容易,因为在返回内容之前我必须读取和写入多个db,我需要其中一些结果.
所以问题是什么是更好的方法?异步/等待在dB层上设置并且无法更改逻辑层async/await将允许我在函数调用上执行异步/等待,或者如果我继承逻辑,那么我在函数调用中遇到了承诺.
因此,除了能够编写更清晰的代码之外,如果一个人比另一个人有更多的优势,我希望有人可以给我更多的见解.
我刚刚实施了 Winston Logging,它按预期工作,但我遇到了一些我无法找到答案的问题。
据我所知,winston 的工作方式,设置的日志级别以及使用优先级以下的任何内容,例如出错时,它还将包括信息日志等。 有没有办法创建特定的日志级别,让我们称之为 HTTP或 db,我只将 http 或 db 事件记录到其中,而它们最终不会出现在组合文件或控制台中?
我在查找为什么在使用组件时会出现额外的 mat-form-field-underline 时遇到问题。
我的页面使用此标记:
<mat-form-field class="col-md-6">
<app-mat-select-all
[data]="tractList$"
formControlName="tractList"
fieldName="name"
[multiselect]=true
labelText="Tract List"
idField="guid"
>
</app-mat-select-all>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
我的自定义组件具有以下模板代码
<form novalidate [formGroup]="form">
<mat-form-field>
<mat-label>{{labelText}}</mat-label>
<mat-select #select [multiple]="multiselect" [formControl]="selectField" >
<div class="select-all">
<mat-checkbox *ngIf="multiselect" [(ngModel)]="allSelected"
[ngModelOptions]="{standalone: true}"
[indeterminate]="isIndeterminate()"
[checked]="isChecked()"
(click)="$event.stopPropagation()"
(change)="toggleAllSelection($event)">{{text}}</mat-checkbox>
</div>
<mat-option *ngFor="let item of data" [value]="item[idField]">
{{item[fieldName]}}
</mat-option>
</mat-select>
</mat-form-field>
</form>
Run Code Online (Sandbox Code Playgroud)
在渲染的页面上看起来像这样
当我将以下行添加到我的父样式表中时,所有 mat-form-field-underlines 都消失了,这不是我想要的。如果我删除自定义组件中的 mat-form-field,我只会得到一行,但 mat-form-field-underline 的对齐方式与页面上的其他组件不对齐。所以我需要找到一种方法,只针对第二个下划线才能删除。
<mat-form-field class="col-md-6">
<app-mat-select-all
[data]="tractList$"
formControlName="tractList"
fieldName="name"
[multiselect]=true
labelText="Tract List"
idField="guid"
>
</app-mat-select-all>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
这是一个 stackblitz 示例,演示了第二个下划线StackBlitz 示例的此问题
这是我检查时的代码,似乎由于某种原因在 mat-form-field 内有一个 mat-form-field。不知道为什么? …
我想知道SQL Server中是否有一种方法可以对包含varchar列中数字的表进行排序.我把这个号码(在我的案例中为House Numbers)投入Int并使用
order by cast([sano]%2 as int), cast([sano] as Int)
Run Code Online (Sandbox Code Playgroud)
实际上创造了2,4,6,8 ......,1,3,5,7,9等的输出.但我需要得到像2,4,6,8..9,7,5,3,1这样的输出,所以即使是asc然后奇怪的是desc.
我有一个使用一些自定义组件的 Angular Reactive 表单。它有一些基本的表单字段以及一个 Froala 编辑器。我使用自定义下拉列表自定义编辑器,这些下拉列表通过 observable 从后端获取值。这是我的问题开始的地方。我有一个名为的函数transformArr(),它看起来像这样
transformArr() {
console.log('Transform Contact Options')
this.contactFields$ = this.mailTemplateService
.templateLookup(this.guids.MAIL_TEMPLATE_CONTACT_FIELDS);
this.contactFields$.subscribe(res => {
this.contactFieldsOption = new Object() as {
[key: string]: string
};
for (const each of res) {
this.contactFieldsOption[each.value.replace('""', '""')] = each.name;
}
})
console.log('Transform Personal Options')
this.personalFields$ = this.mailTemplateService
.templateLookup(this.guids.MAIL_TEMPLATE_CONTACT_FIELDS);
this.personalFields$.subscribe(res => {
this.personalFieldsOption = new Object() as {
[key: string]: string
};
for (const each of res) {
this.personalFieldsOption[each.value.replace('""', '""')] = each.name;
}
})
}
Run Code Online (Sandbox Code Playgroud)
只有当两者都完成时我才想运行 this.initializeEditor();
我在窗体中有一个下拉框,这些框通过一个自定义组件使用,我通过将GUID的查找值粘贴到该组件来用数据填充它们。所有工作都按预期进行,我得到了我的数据等。但是现在,我需要根据用户的选择也能够清除下拉菜单中的数据。假设用户在第一个下拉式水果中进行选择,基于此,我想在选择中提供所有我没有问题的水果。但是现在用户回去,将其选择从水果更改为苏打水,这意味着先前选择的苹果不再有效,需要清除。所以我正在寻找一种简单的方法来清除下拉列表中的所有值。
使我的数据进入下拉菜单
socialOptions$: Observable<Array<IServerDropdownOption>>;
ngOnInit() {
this.socialOptions$ = this.guidService.fetchAll(this.guids.SOCIAL_LABELS).pipe(shareReplay());
}
Run Code Online (Sandbox Code Playgroud)
我需要根据某些条件更改 div 的类。我如何使用 *ngif 来实现这一目标?我使用此代码在我的模板中运行良好。
<div *ngIf="quickSearchTypeOptionConfigId && isGridReady" class="col-md-4 m-auto">
Run Code Online (Sandbox Code Playgroud)
但是我在这个 div 上面有一个 div,它目前是
<div class="col-md-8 m-auto">
Run Code Online (Sandbox Code Playgroud)
我需要的是如果*ngIf="quickSearchTypeOptionConfigId && isGridReady" true 那么
<div class="col-md-8 m-auto">
Run Code Online (Sandbox Code Playgroud)
别的
<div class="col-md-12 m-auto">
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,然后做 2 *ngif 的
angular ×4
javascript ×2
node.js ×2
typescript ×2
async-await ×1
css ×1
morgan ×1
observable ×1
promise ×1
select ×1
sql ×1
sql-order-by ×1
sql-server ×1
t-sql ×1
winston ×1