小编Has*_*haf的帖子

类验证器 (Node.js) 在自定义验证中获取另一个属性值

目前,我有一个非常简单的类验证器文件,其中包含 Nest.js 中的 ValidationPipe,如下所示:

import {
  IsDateString,
  IsEmail,
  IsOptional,
  IsString,
  Length,
  Max,
} from 'class-validator';

export class UpdateUserDto {
  @IsString()
  id: string;

  @Length(2, 50)
  @IsString()
  firstName: string;

  @IsOptional()
  @Length(2, 50)
  @IsString()
  middleName?: string;

  @Length(2, 50)
  @IsString()
  lastName: string;

  @IsEmail()
  @Max(255)
  email: string;

  @Length(8, 50)
  password: string;

  @IsDateString()
  dateOfBirth: string | Date;
}
Run Code Online (Sandbox Code Playgroud)

假设在上面的“UpdateUserDto”中,用户传递了一个“电子邮件”字段。我想通过类验证器构建自定义验证规则,以便:

  • 检查电子邮件地址是否已被用户从数据库中获取
  • 如果电子邮件地址已被使用,请检查当前用户(使用 'id' 属性的值)是否正在使用它,如果是,则验证通过,否则,如果它已被其他用户使用,则验证失败。

虽然检查电子邮件地址是否已在使用中是一项非常简单的任务,但如何将 DTO 中其他属性的值传递给自定义装饰器@IsEmailUsed

node.js class-validator nestjs

7
推荐指数
1
解决办法
2万
查看次数

如何使用Swift for OS X创建多页面应用程序?

我在Xcode中使用Swift语言创建了一个OS X Cocoa应用程序.我已经设置了我的主要故事板:

主要故事板

当我运行应用程序并按下按钮时,它会打开另一个视图控制器的新窗口,这不是我想要的.这就是我得到的:

显示

我想要的是ViewControllers要在同一个窗口中切换,而不是在新窗口中切换.如何停止新窗口行为并使其在同一窗口中工作?

macos xcode cocoa swift

6
推荐指数
1
解决办法
3421
查看次数

将JavaFX FXML对象组合在一起

特别描述性和内容丰富的答案将获得价值50美元的声誉.

我正在使用JavaFX开发应用程序,对于视图,我使用FXML.

<AnchorPane id="AnchorPane" fx:id="dashboard" prefHeight="400.0" prefWidth="600.0" stylesheets="@css/dashboard.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.hassanalthaf.telemart.viewmodels.DashboardViewModel">
   <children>
      <MenuBar maxWidth="600.0" minWidth="600.0" prefWidth="600.0">
        <menus>
          <Menu mnemonicParsing="false" text="File">
            <items>
              <MenuItem mnemonicParsing="false" text="Close" />
            </items>
          </Menu>
          <Menu mnemonicParsing="false" text="Help">
            <items>
              <MenuItem mnemonicParsing="false" text="About" />
            </items>
          </Menu>
        </menus>
      </MenuBar>
      <AnchorPane fx:id="home" layoutY="29.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="371.0" prefWidth="600.0" />
      <AnchorPane fx:id="about" layoutY="29.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="371.0" prefWidth="600.0" />
      <AnchorPane fx:id="users" layoutY="29.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="371.0" prefWidth="600.0" />
   </children>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这个段包含一些<AnchorPane>s的的ID home,about,users.这些是我的申请的单独页面.要操纵那些窗格,我必须将它们注入到我的代码中,如下所示: …

java javafx javafx-2 fxml

6
推荐指数
1
解决办法
1315
查看次数

Sequelize:无法设置新的唯一约束消息

我正在尝试为字段username和的唯一约束违规设置验证消息email。但是,每当输入已使用的用户名时,它都会显示为该email属性定义的消息,但会显示该属性的输入username,并表示此输入适用于该username属性。我该如何解决这个问题?这是我的代码:

module.exports = function (sequelize, DataTypes) {
    var users = sequelize.define('users', {
        full_name: {
            type: DataTypes.STRING,
            allowNull: false,
            validate: {
                len: {
                    args: [5, 50],
                    msg: 'Your full name may be 5 to 50 characters only.'
                }
            }
        },
        email: {
            type: DataTypes.STRING,
            allowNull: false,
            unique: {
                msg: 'This email is already taken.'
            },
            validate: {
                isEmail: {
                    msg: 'Email address must be valid.'
                }
            }
        },
        username: {
            type: …
Run Code Online (Sandbox Code Playgroud)

javascript node.js sequelize.js

5
推荐指数
2
解决办法
8384
查看次数

Angular2如何解析导入?

所以,我正在学习Angular2,我正在使用TypeScript.所以,我知道SystemJS用于获得这样的import功能:

import { bootstrap } from "angular2/platform/browser";

这是有道理的,但是,我不明白究竟angular2/platform/browser是哪里.我很确定它不是路径,而是用于模拟路径/命名空间的其他东西.另外,看bootstrap这里,是一堂课吗?或者它只是一个功能.是否有可能导入其他东西?

任何特殊的答案都会得到我的赏金.

typescript angular

4
推荐指数
1
解决办法
3661
查看次数

Hibernate 5警告,如何解决这些问题?

在我启动Hibernate 5应用程序的那一刻,我发现这些警告就像疯了一样.我怎么能摆脱他们?这是我的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!--
Program developed by Hassan Althaf.
Copyright © 2015, Hassan Althaf.
Website: http://hassanalthaf.com
-->

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <property name="hibernate.connecton.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <property name="hibernate.connection.url">
            jdbc:mysql://127.0.0.1:3306/telemart
        </property>
        <property name="hibernate.connection.username">
            root
        </property>
        <property name="hibernate.connection.password">
            php123
        </property>
        <mapping resource="com/hassanalthaf/telemart/users/User.hbm.xml"/>
        <mapping resource="com/hassanalthaf/telemart/customers/Customer.hbm.xml"/>
        <mapping resource="com/hassanalthaf/telemart/inventory/Product.hbm.xml"/>
        <mapping resource="com/hassanalthaf/telemart/orders/Order.hbm.xml"/>
        <mapping resource="com/hassanalthaf/telemart/orders/OrderItem.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

这是整个输出:

ant -f /Users/hassan/NetBeansProjects/TeleMart/TeleMart jfxsa-run
init:
Deleting: /Users/hassan/NetBeansProjects/TeleMart/TeleMart/build/built-jar.properties
deps-jar:
Updating property file: /Users/hassan/NetBeansProjects/TeleMart/TeleMart/build/built-jar.properties
Duplicated project name in import. Project jfx-impl …
Run Code Online (Sandbox Code Playgroud)

java hibernate hibernate-5.x

3
推荐指数
1
解决办法
6211
查看次数

为什么在C语言中strcpy时编码搞乱了

源代码:

char CUSTOMERS_FILE[50] = "customers.txt";

typedef struct Customer {
    char name[50];
    char password[50];
    char billing_address[100];
    char phone_number[15];
    double amount_paid;
    double amount_due;
    char date[20];
} Customer;

char* read_string(int length) {
    char data[length];
    rewind(stdin);
    fgets(data, length, stdin);

    if (data[0] == '\n') {
        data[0] = '\0';
    }

    strtok(data, "\n");

    printf("DATA: %s", data);

    return data;
}

void handle_modify_customer(Customer customer) {
    Customer edited_details;

    printf("\nMODIFYING DETAILS\n==============\n\n");

    printf("CREATE A CUSTOMER PROFILE\n=========================\n");

    printf("Name (%s): ", customer.name);
    strcpy(edited_details.name, read_string(50));

    printf("Password (%s): ", customer.password);
    strcpy(edited_details.password, read_string(50));

    printf("Billing Address (%s): ", …
Run Code Online (Sandbox Code Playgroud)

c file character-encoding

2
推荐指数
1
解决办法
97
查看次数