我有一个使用 typescript 的节点应用程序,我正在尝试按照 TypeORM 的文档创建一个新的迁移。
首先,我安装了CLI,像这样设置我的连接选项,当我尝试运行此命令时:
npm run typeorm migration:create -- -n migrationNameHere
我收到以下错误:
迁移创建过程中出错:类型错误:无法读取对象中未定义的属性“startsWith”。(...\src\commands\MigrationCreateCommand.ts:62:37) 在步骤 (...\node_modules\typeorm\node_modules\tslib\tslib.js:141:27) 在 Object.throw (...\node_modules \typeorm\node_modules\tslib\tslib.js:122:57) 在被拒绝 (...\node_modules\typeorm\node_modules\tslib\tslib.js:113:69) npm ERR!代码 ELIFECYCLE npm ERR!错误号 1 npm 错误号!backend@0.0.1 typeorm: node --require ts-node/register ./node_modules/typeorm/cli.js "migration:create" "-n" "migrationNameHere"` npm ERR!退出状态 1
这些是我在 package.json 中的嵌套依赖项:
我的节点版本是v12.14.1,nestjs 是7.0.0和 nestjs/typeorm 是7.1.3
我的 app.module.ts 是这样的:
TypeOrmModule.forRoot({
type: 'mysql',
host: database().host,
port: parseInt(database().port),
username: database().username,
password: database().password,
database: database().schema,
entities: [Question, QuestionOption],
migrations: ['migration/*.js'],
cli: …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的实体生成迁移文件,但是每当我运行命令来创建实体时,它都会创建一个“空”文件,只创建 up 和 down 方法。
我在的package.json文件中添加了这个脚本:"typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js"。
在我的 app.module.ts 中,连接是这样配置的:
TypeOrmModule.forRoot({
type: 'mysql',
host: database().host,
port: parseInt(database().port),
username: database().username,
password: database().password,
database: database().schema,
entities: [Question, QuestionOption],
migrations: ['src/migration/*{.ts,.js}'],
cli: {
migrationsDir: 'src/migration'
},
synchronize: true,
})
Run Code Online (Sandbox Code Playgroud)
当database()它是一个nestjs配置文件,从文件.ENV获取值。
我用来创建迁移的脚本是:npm run typeorm migration:create -- -n QuestionTables -d src/migrations需要指定-d 的地方,否则不会创建迁移文件(即使它在 forRoot 方法的 cli 中指定。
我是否需要手动编写 SQL 来创建表?
如果我需要向现有表添加新列,我应该创建一个新的迁移文件并手动编写 SQL 代码来添加它吗?
我尝试运行的另一个命令是这个:npm run typeorm migration:generate -- -n QuestionTables -d src/migrations在这里它给了我一个错误:“错误:在任何 orm …
我想要做的是对数据表进行 ajax 搜索。由于某些原因,我没有考虑数据表提供的默认搜索功能,因此我创建了一个带有按钮的文本框。
在我的 Api 上,我为 javascript 函数发回了一个 Json
$("#buttonSearchDevice").on('click', function () {
var searchString = $("#searchString").val();
$.ajax({
url: "/Devices/LoadDevices",
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
data:
{
searchString: searchString
},
success: function (data) {
//if (data.length == 0)
// $('#devicesList').dataTable().fnClearTable();
//else {
// $('#devicesList').dataTable().fnClearTable();
// $('#devicesList').dataTable().fnAddData(data);
//}
}
});
});
Run Code Online (Sandbox Code Playgroud)
我尝试了注释代码来“刷新”我的数据表,但没有成功,我收到以下错误:
DataTables 警告:table id=devicesList - 为第 0 行、第 1 列请求未知参数“model”。有关此错误的更多信息,请参阅http://datatables.net/tn/4
我是否需要重新创建整个数据表(销毁和创建),还是可以使用新的新数据刷新它?
我正在尝试删除或至少更改ListView(主详细信息)上所选项目的颜色。
我没有看到任何更改所选项目的背景颜色的选项。
到目前为止,这是我所做的:
<ListView ItemsSource="{Binding MenuItems}"
HasUnevenRows="True"
RowHeight="50"
>
<ListView.Behaviors>
<e:EventToCommandBehavior EventName="ItemTapped"
Command="{Binding NavigateCommand}"
EventArgsParameterPath="Item.ViewName">
</e:EventToCommandBehavior>
</ListView.Behaviors>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout VerticalOptions="Center" HorizontalOptions="FillAndExpand"
Orientation="Horizontal"
Padding="20,0,0,0"
Spacing="10"
HeightRequest="50">
<Image Source="{Binding Icon}"
WidthRequest="40"
HeightRequest="40"
VerticalOptions="Center" />
<Label Text="{Binding Title}"
FontSize="Medium"
VerticalOptions="Center"
TextColor="Black"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
当我选择列表视图的任何项目时,颜色保持橙色。
有人知道解决方法吗?
我试图通过检查它是否属于特定组来确定经过身份验证的用户是否是管理员。我在我的 React 应用程序中使用 amplify 并尝试了多种方法,例如Auth.currentUserInfo(),Auth.currentAuthenticatedUser()并且还获取 jwt 令牌以查看它是否以某种方式返回到令牌中,但我没有找到任何相关信息。我看到有人说这里的payload cognito:groups令牌中存在 a ,但这可能会改变,因为在我返回的令牌中它不存在。
我认为可行的另一件事是 jwt 中的范围(aws.cognito.signin.user.admin),但似乎每个使用 amplify 创建的用户都会返回此范围。
是否可以检查经过身份验证的用户是否属于某个组或者是否是 Cognito 的管理员用户?
我正在使用 UoW 模式,并且使用 Simple Injector 进行依赖注入。我已经注册了 UoW 类container.Register<IUnitOfWork, UnitOfWork>(Lifestyle.Scoped);,并且 UoW 类在构造函数中接收了一个 DbContext ,例如:
private readonly LPCContext _lpcContext;
public UnitOfWork(LPCContext lpcContext)
{
_lpcContext = lpcContext;
}
Run Code Online (Sandbox Code Playgroud)
其中 LpcContext 是 DbContext 类型。
我的问题是:由于我希望每个请求都有一个 DbContext,我还需要在 Simple Injector 中注册它吗?如果是这样,我如何实现这一目标?
c# ×2
nestjs ×2
typeorm ×2
typescript ×2
ajax ×1
asp.net-mvc ×1
aws-amplify ×1
datatable ×1
jquery ×1
node.js ×1
npm ×1
reactjs ×1
xaml ×1