我正处于一个大项目的分析阶段,该项目将使用微服务架构创建。我非常有信心(至少在未来 3 年)整个代码库将用 TypeScript 编写,并且大多数模型将在这些服务之间使用。
我计划使用微服务来构建它,因为每个模块都将是一个单独的 API,它将拥有其 REST 端点来处理与其职责相关的任务。例如,身份服务将处理注册、身份验证、令牌更新等......
我计划将每个服务创建为独立的 NestJS 项目。及其存储库、包、依赖项等......
但我有一个疑问:
这些服务是否应该在内部声明每个模型?即使它可能是在另一个服务中声明的相同模型?这可能会导致项目之间出现大量代码重复,对吗?
如果他们不这样做,并且他们应该定义模型的只读子集,其中仅包含他们需要的属性,那么当“源”模型发生更改时,哪一个是在不同服务之间保留子集更改的最佳方法?假设服务A定义了模型X,服务B使用X的一个子集(称为X1 ),服务B使用X的另一个子集(称为X2 )。每当某个属性可能发生更改(被删除、更改类型、名称或其他)时,当这些项目可能有 10 个、20 个或更多时,哪种方法是在每个项目之间保持此更改同步的最佳方法?
我很困惑,因为据我所知,微服务应该是独立的,并且拥有它运行所需的一切,所以遵循这个逻辑让我认为服务应该重新声明原始模型的相同副本或子集,住在另一个服务中。
但从代码重复的角度来看,这似乎是一种自杀,因为第一年我将是唯一一个从事这些项目的人。
我知道微服务架构更适合开发团队,但是团队会来,所以在不久的将来可能会有 3/4 的人在做它,每个人都会有几个服务需要维护和维护发展。
在此先感谢任何愿意帮助我解决这个疑问的人!
我正在尝试上传文件,但是当请求到达控制器时它会失败.失败的意思是,如果我尝试$request->hasFile("filename")总是返回false.
我必须在视图中指定一些特定的字段吗?
这是视图的片段:
<body>
<form action="{{url('dev/tester')}}" method="POST">
{{csrf_field()}}
<input type="file" name="file">
<button type="submit">Test</button>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
这是控制器
class Tester extends Controller
{
public function index(Request $request)
{
if($request->hasFile('file'))
{
dd('Got the file');
}
dd('No file');
}
public function testView()
{
return view('tests.file_upload');
}
}
Run Code Online (Sandbox Code Playgroud)
我总是得到'没有文件'.
任何线索?我甚至检查了php.ini以查看是否有大小限制,但它都设置为32M作为MAMP的专业默认设置...
我正在尝试创建一个在输入中接受icon属性的指令,该属性将是图标名称.所以内部指令会尝试找到一个span应用类的元素.我想知道这是否可以从应用于父代的指令中实现.或者我是否也必须为孩子创建一个指令?
这是我的HTML代码:
<div sfw-navbar-square sfw-navbar-icon>
<span class="mdi mdi-magnify"></span>
</div>
Run Code Online (Sandbox Code Playgroud)
这是指令本身:
import { Directive, ElementRef, Renderer } from '@angular/core';
@Directive({
selector: '[sfw-navbar-square]'
})
export class NavbarSquareDirective {
// Here I'd like to define a input prop that takes a string
constructor(private el: ElementRef, private renderer: Renderer) {
this.renderer.setElementClass(this.el.nativeElement, 'navbar-square-item', true);
this.renderer.setElementClass(this.el.nativeElement, 'pointer', true);
this.renderer.setElementClass(this.el.nativeElement, 'met-blue-hover', true);
// Here I'd like to pass that string as a class for the span child element. Can I have access to …Run Code Online (Sandbox Code Playgroud) 我正在尝试从Laravel中的Request访问自定义标头.标题名称为"access_from".列出Laravel中的所有标题,只给出了"标准的"标题,但是我设置的标题不在列表中.签入浏览器网络选项卡,我可以看到标题已发送.所以我想知道如何从Laravel中访问它.
我正在使用Angular2来使用默认的http服务发出请求.
我试图有条件地transform: translateX($value)直接应用模板元素,[ngStyle]但我找不到任何人谈论这个.主要是因为我不知道要搜索什么:D.
我见过一些方法做基础的造型与[style.color]或一些更高级的用[attr.style]="{'transform': 'translateX(4rem)'}",但是最后一个在呈现的HTML这将返回:style="unsafe".我已经看到你可以使用它Sanitizer来消毒或绕过你的风格/剧本等......但是在这一点上,它开始"嗅觉"就像你不应该做的事情一样?我正在寻找一种干净的方法来实现这一目标.但我不知道在哪里看.
在此先感谢大家!
我正在阅读有关模块的Angular文档,寻找不鼓励在AppModule中导入SharedModule的行。
我什么都没找到,只是一个GitHub问题,指出最好不要导入它。但是没有任何深入的解释...
https://github.com/tomastrajan/angular-ngrx-material-starter/issues/47
Angular不鼓励在Shared模块中提供服务,我的确同意。但没有别的。
所以我的问题是:
由于我所有的功能模块都是延迟加载的,并且需要导入共享模块,而且我的应用程序组件也需要使用同一共享模块提供的内容,因此将其导入AppModule是一种不好的做法吗?
结果可能是什么?
在此先感谢任何人
我正在阅读 Laravel 的文档,我偶然发现了这个 isValid() 方法,无论文件是否有效,它都会返回 TRUE 或 FALSE。
但是……这个方法实际上是做什么的?我知道它返回 TRUE 或 FALSE,但是这个检查背后是什么?什么是检查是否有效?我已经用谷歌搜索了一段时间,但真的找不到有用的东西......
你们能帮我解释一下吗?
谢谢!
我目前正在使用BitBucket为我的repos与git引擎.我不使用github,因为它是一个私人项目,所以我不能公开它.
当我.gitignore用gitignore.io 创建我的文件时,试图忽略PhpStorm和WebStorm,Gitkraken(这是我Mac上的git客户端),它不会忽略该.idea文件夹.每次我更改我的工作区布局打开或关闭侧边栏或文件,然后git跟踪该更改.我无法弄清楚什么是错的,因为我也试着设置.idea/中.gitignore,但它里面的文件仍追踪...
有任何想法吗?
我正在尝试在后端移动客户端方法:
客户端方法使用TurfJS和Leaflet来执行一些操作。唯一的问题是服务器端(nodejs)窗口不可用,因此我无法使用 Leaflet。
我正在寻找一种方法来将这段代码转换为普通 Turf 等效项:
const pointA = turf.point([originCoords.lng, originCoords.lat]);
const pointB = turf.destination.default(pointA, 50, 45, { units: 'kilometers' });
// here I'm using leaflet to get a BBox
const latLngBounds = L.latLngBounds(
L.latLng(pointA.geometry.coordinates[1],
pointA.geometry.coordinates[0]),
L.latLng(pointB.geometry.coordinates[1], pointB.geometry.coordinates[0]),
);
// using that BBox I then create the rectangle, again with leaflet
tile = L.rectangle(latLngBounds);
Run Code Online (Sandbox Code Playgroud)
我仍然是整个 GeoJSON 的新手,也许我错过了一些东西,有人可以帮助我吗?
我leaflet + leaflet-draw + @ngx-leaflet + @ngx-leaflet-draw在 Angular 应用程序中使用。
我已经尝试了一切,版本更改,导入模块.forRoot()而不是,在我的angular.json文件中添加 js文件,删除 node_modules,重新安装它们,从头开始遵循@ngx-leaflet-draw 上的指南一百次。
无论我做什么,当我尝试绘制矩形时,它总是会引发此错误:
即使处理程序存在并且所有处理程序都可以完美运行,除了矩形(我唯一需要的一个)
如果不是这样,我什至不知道如何为您提供更具体的信息:
leaflet: 1.5.1leaflet-draw: 1.0.4@asymmetrik/ngx-leaflet: 6.0.1@asymmetrik/ngx-leaflet-draw: 5.0.1我被这个愚蠢的错误困住了,我不知道如何克服它。请帮忙!
这是演示的回购:https : //github.com/caiusCitiriga/leaflet-rect-drawer
我遇到了一种奇怪的行为(或者可能是想要的行为)。我有一个 Angular 应用程序,其中所有模块都是延迟加载的。
在一个模块上,我有一个守卫检查来自 JWT 的解码用户是否是系统管理员。如果是这样,用户应继续该部分,否则将在仪表板中重定向。
奇怪的是,这个东西只在第一个模块加载时起作用。然后,如果我尝试以非系统管理员身份注销和访问,则不会触发 CanLoad 防护。
我还尝试在同一个守卫中实现(CanActivate 和 CanActivateChild)接口,并将守卫放在模块上app-routing.module.ts和feature-routing.module.ts模块上,分别放在模块的CanLoad、CanActivate和CanActivateChild属性上。
该CanActivate CanActivateChild方法永远不会被调用。从来没有。
而放置在 上的CanLoadapp-routing.module.ts只调用一次。
is-sys-adm.guard.ts文件:export class SFWIsSysAdmGuard implements CanLoad, CanActivate, CanActivateChild {
public constructor(
private readonly accessSvc: SFWAuthService,
private readonly toastSvc: NbToastrService,
private readonly translateSvc: TranslateService,
private readonly navigationSvc: NavigationService,
) { }
public canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): …Run Code Online (Sandbox Code Playgroud) 我想使用MVC模式将我的逻辑从演示文稿和数据中划分出来。
好吧,我一直在寻找我。但事实是,我什至不知道要搜索什么。
我正在尝试在php中设置MVC框架。我正在关注youtube上的教程,并且停留在路由点。
我已经阅读了很多指南,每个指南都以不同的方式讲课,只会造成更多的混乱。
关键是这样的:
我有一个.htaccess文件,其中包含一些指令(但是问题是我不知道所有这些指令的含义。我从未理解过htaccess逻辑)
Options -MultiViews
RewriteEngine On
#I think this sets the base url of the site?
RewriteBase /~caiuscitiriga/mvc/public
#What does this mean??
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#AND THIS?!
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
然后我有这些php脚本:
<?php
require_once '../app/init.php';
$app = new App();
Run Code Online (Sandbox Code Playgroud)
<?php
require_once 'core/App.php';
require_once 'core/Controller.php';
Run Code Online (Sandbox Code Playgroud)
不要问我为什么使用filter_var和rtrim。因为这正是我要弄清楚的。如我之前所说,此代码不是我的。我敢肯定,把戏完全在.htacess和App.php中,但我不明白其逻辑
class App{
protected $controller = 'home';
protected $method = 'index';
protected $params = [];
public function __construct()
{
print_r($this->parseUrl());
}
public …Run Code Online (Sandbox Code Playgroud) 我只是想知道 Laravel 5.2 中创建自定义实用程序类的“最佳实践”。
我已经阅读了 App/Http/ 中的帮助程序,可以通过将每个文件注册到 composer.json 文件来使用它们。但我也读到帮助文件应该是普通的函数文件。不是上课。
所以我想知道创建一个名为File的Model,其中包含一系列处理文件的方法是否是正确的方法。既然与数据库没有交互,就应该命名为相关表的单数名称吧?但是,如果我没有这样称呼的表?
没有更简洁的方法来创建不与数据库对话的类吗?任何帮助都非常感谢。
angular ×5
php ×5
laravel ×4
laravel-5.2 ×3
javascript ×2
leaflet ×2
.htaccess ×1
apache ×1
apache2 ×1
architecture ×1
bitbucket ×1
css ×1
file-upload ×1
geojson ×1
git ×1
gitignore ×1
gitkraken ×1
http ×1
laravel-5 ×1
leaflet-draw ×1
ngx-leaflet ×1
phpstorm ×1
reusability ×1
turfjs ×1
typescript ×1