Hello World Nest js

Follow below URL for prerequisite i.e install NPM on your system

https://javaquicky.com/p/angular-456-set-up-environment.htm

Step 1 : Create a new directory anywhere you want in your PC.

Step 2 : Open command prompt window and enter below command to execute.

D:Rakesh_kumar_SinghaniaIonicFrameWorkNestJs>npm i -g @nestjs/cli

this will get all dependency for your Nest Js project.

Step 3:  Generate new project using below command

D:Rakesh_kumar_SinghaniaIonicFrameWorkNestJs>npm new firstProject

Step 3: This command will ask for few parameters like below
just enter all required details as per your specifications.

D:Rakesh_kumar_SinghaniaIonicFrameWorkNestJs>nest new project

⚡️  Creating your Nest project...
🙌  We have to collect additional information:

? description : FirstProject
? version : 1.0.0
? author : rakeshkumar.singhania

💥  Thank you for your time!
This will also generate few files for you to start a new project and also ask for your preference between NPM or YARN.
Choose according to your need and project setup.
As I have used NPM so I have selected NPM as a build tool here.

Once process is completed your screen look like above screen with all settings.

175 total views, no views today

Configuration ‘prod’ could not be found

Probem:

I am trying to serve the app via configuration for prod in Angular 6 using below command.

ng serve --configuration=prod

But it gives me below error :

Configuration 'prod' could not be found in project 'platform-ui'.

Error: Configuration 'prod' could not be found in project 'platform-ui'.

Solution :

If you look at your angular.json file, you’ll see that you have finer control over settings for each configuration.

Now look for serve tag in json

“serve”: {
“builder”: “@angular-devkit/build-angular:dev-server”,
“options”: {
“browserTarget”: “platform-ui:build”
},


and add configuration for your custom server like this :


“configurations”: {
“production”: {
“browserTarget”: “platform-ui:build:production”
},
“qa”: {
“browserTarget”: “platform-ui:build:qa”
},

now try to run below command again

ng serve --configuration=prod

179 total views, no views today

Get URL in angular 5

The Location class has prepareExternalUrl() that takes base href into account.

You can also try to inject 

constructor(@Inject(APP_BASE_HREF) href:string){}



It seems APP_BASE_HREF can’t be injected anymore without explicitly providing it.


PlatformLocation provides more details about the URL:   

  
PlatformLocation is a service available in Angular 5+ apps that makes it easy to interact with the current URL path.

PlatformLocation service can come-in really handy when coupled with the router to perform certain operations.

you can get URL like this.


constructor(platformLocation: PlatformLocation) {
console.log((platformLocation as any).location);
console.log((platformLocation as any).location.href);
console.log((platformLocation as any).location.origin);
}





166 total views, no views today

Create a new component in angular

If you are Not aware of basis environment set up and Hello world of angular please go through below links for the context.

1 . https://javaquicky.com/p/angular-456-set-up-environment.html
2 . https://javaquicky.com/2018/07/17/angular-5-hello-world-step-by-step/

Above links help us in creating ready made application which angular CLI provide us but now we want a component of our own.

Step 1:  

Creating a Custom Component

navigate to your folder structure where you want to create your custom component
and then run below command

ng g component customHelloWorld

like this :

D:Rakesh_kumar_SinghaniaAngular5HelloWorldhello-world-appsrcapp>
ng g component customHelloWorld

This command will create your component and also it make sure to mark an entry in your app.module.ts file.

app.module.ts — This file holds all the source required by the project which include all the imports of the components.

below is the snapshot of generated files :

Beauty of command ng g component customHelloWorld is 

This command generated 4 for the component :

1 . HTML file of your component
2. Test file for your component
3. TS file for writing your logic.
4. CSS file for styling.


Step 2:  


Open auto generated file custom-hello-world.component.ts.

@Component({
  selector: 'app-custom-hello-world',
  templateUrl: './custom-hello-world.component.html',
  styleUrls: ['./custom-hello-world.component.css']
})
export class CustomHelloWorldComponent implements OnInit {

  constructor() { }

  ngOnInit() {   
   console.log("hello");
  }
}

and and modify custom-hello-world.component.html according to your need.

<p>
  custom-hello-world works!
</p>

Below code is important in sense of mapping your HTML file and CSS file specific to this component.

@Component({
  selector: 'app-custom-hello-world',
  templateUrl: './custom-hello-world.component.html',
  styleUrls: ['./custom-hello-world.component.css']
})






So whenever you use app-custom-hello-world selector in any of your HTML it will render the
HTML part of custom-hello-world.component.html.



Lets use app-custom-hello-world  selector tag in our app.component.html.

app.component.html
<!--The content below is only a placeholder and can be replaced.-->
<div style="text-align:center">
  <h1>
    Welcome to Custom component {{ title }}!
  </h1>
 <app-custom-hello-world></app-custom-hello-world>
</div>

Start the server using

 ng serve

Hit on the url http://localhost:4200

Output :


155 total views, no views today

Angular 5 Hello world step by step

Step 1: Prerequisites

Install Node.js & npm

https://javaquicky.com/p/angular-456-set-up-environment.html

Install Angular CLI

Creating a new Angular app is a bit tedious job especially when you are new to Typescript as there will be lot of initial configurations involved. In order make it simpler Google came up with the utility called Angular CLI, using which we can create and manage our app from command line itself

In order to install Angular CLI open Node.js command prompt/command prompt and run the below command

npm install -g @angular/cli

Install Code Editor

There are multiple code editors available in market

1. Microsoft Visual Code Studio
2. Brackets
3. Notepad++,
4. Sublime Text

As I m Fond of eclipse so I have installed angular plugin in eclipse as Angular editor.


Step 2: Create Project

Lets build our First Angular 5 Hello World application

Create a new folder with folder name “Angular5HelloWorld” anywhere you want.

Open command prompt and navigate to the folder.

Use the ng new command to create our Hello World Angular Project ng new hello-world-app

Ng stands for aNGular. NG is a core module, and this module contains all the directives that comes built in with the AngularJS library file.

D:Rakesh_kumar_SinghaniaAngular5HelloWorld>ng new hello-world-app

In case you get error that ‘ng‘ is not recognized command

To solve that go to :

Control Panel > User accounts > Change my environmnet variables

and add the path to your AppDataRoamingnpm, in my case it was

C:UsersrakeshkumarAppDataRoamingnpm

Above command ng new helloworldapp creates a MAGIC…!!

This command add 1102 packages and all required dependencies for your first project.

Now your project ‘hello-world-app’ is successfully created.

Step 3: Run our first application

Navigate to your newly created project and run below command to run your application.

D:Rakesh_kumar_SinghaniaAngular5HelloWorldhello-world-app>ng serve

This command will start the server and will launch the default Angular Application build by Angular CLI.

If you see above screen after running command then congratulations everything is fine with your application and your are good to go.

Default url to launch application is : http://localhost:4200/

Step 4 :Output



Next :create a customize component
https://javaquicky.com/2018/07/17/create-a-new-component-in-angular/

175 total views, no views today

TypeError: Cannot read property ‘thisCompilation’ of undefined

Follow these steps one by one  to resolve the error

npm i -g @angular/cli@latest
rm -rf node_modules / rd /s /q node_modules
npm cache clear --force
npm cache verify
npm install
npm uninstall webpack
npm install --save-dev --save-exact @angular/cli@latest

You might get below error also 

webpack/lib/node/NodeTemplatePlugin'


Solution 
npm remove webpack -g

npm i webpack --save-dev

193 total views, no views today

In MemoryDatabase H2 with SpringBoot


An in memory database is created when an application starts up and destroyed when the application is stopped.
That means there is no persistence of data and every time you restart or stop you application your saved data will be lost.

H2

H2 is one of the popular in memory databases. Spring Boot has very good integration for H2.

H2 is a relational database management system written in Java. It can be embedded in Java applications or run in the client-server mode.

H2 also provides a web console to maintain the database.



Setting up a Spring Boot Project with H2


Spring Initializer http://start.spring.io/ is great tool to bootstrap your Spring Boot projects.





As shown in the image above, following steps have to be done

Launch Spring Initializer and choose the following

1. Choose com.rks as Group
2. Choose H2-console as Artifact
3. Choose following dependencies

  • Web
  • JPA
  • H2
  • DevTools


Click Generate Project.


Import the project into Eclipse.


File -> Import -> Existing Maven Project.



Create a simple Employee Entity with a primary key id.


package com.rks.h2console;
import javax.persistence.*;
@Entity
@Table(name = "employee")
public class Employee {

    @Id
    @Column
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    @Column
    private String firstName;
    @Column
    private String lastName;
    @Column
    private String email;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

Edit properties file placed in 

/src/main/resources/application.properties
# Enabling H2 Console

spring.h2.console.enabled=true

# Show all queries
spring.jpa.show-sql=true

#DB configurations

spring.datasource.url=jdbc:h2:mem:rksdb

spring.datasource.driverClassName=org.h2.Driver

spring.datasource.username=test

spring.datasource.password=test

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

Run your application from file EmployeePortalApplication.

Right click -> RunAs ->JavaApplication

package com.rks.h2console;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class EmployeePortalApplication {
    public static void main(String[] args) {
        SpringApplication.run(EmployeePortalApplication.class, args);
    }
}


When you reload the application, you can launch up H2 Console at http://localhost:8080/h2-console.



 As soon as Spring Boot sees H2 in the class path, it auto configures a data source It knows that you are using an in memory database H2 and it uses the default url if you don’t provide one.


All tables will automatically get created by hibernate corresponding to the beans you have created but if you want to create table using sql scripts

You can also populate some data into student table by adding a file called data.sql

/src/main/resources/data.sql



create table student
(
   id integer not null,
   name varchar(255) not null,
   email varchar(255) not null,
   primary key(id)
);

insert into student
values(101,'Rakesh', 'rks@r.com');

insert into student
values(102,'Moni', 'moni@m.com');  

commit;



Source code


https://github.com/rsinghania/H2-Console-Db.git



133 total views, no views today

Intellij not showing GIT pull

This is a  problem which you faced when you have taken clone of your repository in your file explorer using tortoise git.

And then imported your project from file explorer to Intellij.
Like this


So to solve this problem follow these steps.

1. Enter alt+ctrl+S to open setting in intellij.

2. Find version control in the sidebar.

3.select your project which is not showing as part of the GIT.

4. Add your project in GIT.



152 total views, no views today

How to read from CSV file in Java

We can read data from a Microsoft Excel CSV file, where all the values will be column separated, to do this we will use a third party jar i.e OpenCSV.

OpenCSV

OpenCSV is a lightweight java CSV parser. OpenCSV provides most of the basic features for CSV parsing. Some of the important classes in OpenCSV parser are;

CSVReader: This is the most important class in OpenCSV. CSVReader class is used to parse CSV files. We can parse CSV data line by line or read all data at once.
CSVWriter: CSVWriter class is used to write CSV data to Writer implementation. 
CsvToBean: CsvToBean is used when you want to convert CSV data to java objects.
BeanToCsv: BeanToCsv is used to export Java beans to CSV file.

OpenCSV Maven Dependency

Add OpenCSV jar using below maven dependency in POM.XML file, please refer the latest version from https://mvnrepository.com/artifact/com.opencsv/opencsv
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>3.8</version>
</dependency>
There are two ways to read a csv file using OpenCSV
  1. Reading into an array of strings
  2. Reading into beans


Sample data :





Create java bean class to hold CSV data and all fields mention in POJO class should match the column name of CSV file and they are case sensitive.
package com.Excel;

import com.opencsv.bean.CsvBindByName;

public class Employee {
@CsvBindByName
private String Empid;
@CsvBindByName
private String name;
@CsvBindByName
private String salary;
@CsvBindByName
private String valid;

public String getEmpid() {
return Empid;
}
public void setEmpid(String empid) {
Empid = empid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSalary() {
return salary;
}
public void setSalary(String salary) {
this.salary = salary;
}
public String getValid() {
return valid;
}
public void setValid(String valid) {
this.valid = valid;
}
}
we are using @CsvBindByName annotation which identify all columns by name in CSV file.

Main class to read our CSV file.

package com.Excel;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.List;
import com.opencsv.bean.CsvToBeanBuilder;

public class ReadEXcel {

@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String[] args) {
List<Employee> beans;
try {
beans = new CsvToBeanBuilder(new FileReader("test.csv")).withType(Employee.class).build().parse();
for (Employee employee : beans) {
System.out.println(employee.getEmpid());
System.out.println(employee.getName());
System.out.println(employee.getSalary());
}
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}

}
}

This jar gives us freedom of type conversions (wrapped and unwrapped primitives and Strings) occur automatically which is a big relief as a programmer you don’t bother about the type in excel as it will handle by your POJO class which you have created.




154 total views, no views today

The following untracked working tree files would be overwritten by checkout: .gitignore

Problem :

git.exe checkout master —

error: The following untracked working tree files would be overwritten by checkout:
.gitignore

Please move or remove them before you switch branches.
Aborting

Solution :

try running below commands one by one on your repository

git fetch --all

git reset --hard origin/master
this will reset your .gitignore file or any other file which is conflicting.
hope this helps .

219 total views, no views today