Angular 12 HttpClient – Nodejs/Express PostgreSQL Sequelize CRUD APIs Example

Sequelize is a promise-based ORM for Node.js v4 and later. In the tutorial, we will show how to GET/POST/PUT/DELETE requests from Angular 12 Client to PostgreSQL with NodeJs/Express RestAPIs using Sequelize ORM.

Related posts:
Node.js/Express RestAPIs CRUD – Sequelize ORM – PostgreSQL
Node.js/Express RestAPIs – Angular 12 HttpClient – Get/Post/Put/Delete requests + Bootstrap 4

Technologies

  • Angular 12
  • RxJS 6
  • Bootstrap 4
  • Visual Studio Code – version 1.24.0
  • Nodejs – v8.11.3
  • Sequelize
  • PostgreSQL

Demo

Overview

Goal

We create 2 projects:

– Angular Client Project:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + angular-project-structure

– Node.js RestAPIs project:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + nodejs-project-structure

UserCase

Start Node.js server -> Logs:


App listening at http://:::8080
Executing (default): DROP TABLE IF EXISTS "customers" CASCADE;
Executing (default): DROP TABLE IF EXISTS "customers" CASCADE;
Executing (default): CREATE TABLE IF NOT EXISTS "customers" ("id"   SERIAL , "firstname" VARCHAR(255), "lastname" VARCHAR(255), "age" INTEGER, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, PRIMARY KEY ("id"));
Executing (default): SELECT i.relname AS name, ix.indisprimary AS primary, ix.indisunique AS unique, ix.indkey AS indkey, array_agg(a.attnum) as column_indexes, array_agg(a.attname) AS column_names, pg_get_indexdef(ix.indexrelid) AS definition FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND t.relkind = 'r' and t.relname = 'customers' GROUP BY i.relname, ix.indexrelid, ix.indisprimary, ix.indisunique, ix.indkey ORDER BY i.relname;
Drop and Resync with { force: true }
Executing (default): INSERT INTO "customers" ("id","firstname","lastname","age","createdAt","updatedAt") VALUES (DEFAULT,'Joe','Thomas',36,'2018-07-11 08:31:06.976 +00:00','2018-07-11 08:31:06.976 +00:00') RETURNING *;
Executing (default): INSERT INTO "customers" ("id","firstname","lastname","age","createdAt","updatedAt") VALUES (DEFAULT,'Peter','Smith',18,'2018-07-11 08:31:06.977 +00:00','2018-07-11 08:31:06.977 +00:00') RETURNING *;
Executing (default): INSERT INTO "customers" ("id","firstname","lastname","age","createdAt","updatedAt") VALUES (DEFAULT,'Lauren','Taylor',31,'2018-07-11 08:31:06.978 +00:00','2018-07-11 08:31:06.978 +00:00') RETURNING *;
Executing (default): INSERT INTO "customers" ("id","firstname","lastname","age","createdAt","updatedAt") VALUES (DEFAULT,'Mary','Taylor',24,'2018-07-11 08:31:06.978 +00:00','2018-07-11 08:31:06.978 +00:00') RETURNING *;
Executing (default): INSERT INTO "customers" ("id","firstname","lastname","age","createdAt","updatedAt") VALUES (DEFAULT,'David','Moore',25,'2018-07-11 08:31:06.978 +00:00','2018-07-11 08:31:06.978 +00:00') RETURNING *;
Executing (default): INSERT INTO "customers" ("id","firstname","lastname","age","createdAt","updatedAt") VALUES (DEFAULT,'Holly','Davies',27,'2018-07-11 08:31:06.978 +00:00','2018-07-11 08:31:06.978 +00:00') RETURNING *;
Executing (default): INSERT INTO "customers" ("id","firstname","lastname","age","createdAt","updatedAt") VALUES (DEFAULT,'Michael','Brown',45,'2018-07-11 08:31:06.979 +00:00','2018-07-11 08:31:06.979 +00:00') RETURNING *;

-> PostgreSQL records:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + initial-data-postgresql-records

– Angular client retrieve all customers from Node.js RestAPIs:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + retrieve-all

– Angular client update a customer -> Change the firstname of first customer: ‘Joe’ to ‘Robert’.

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + update-form

-> result:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + update-result

– Delete ‘Peter’ customer:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + delete-result

– Add a new customer:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + add-new

-> result:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + add-result

– Check final customer’s list:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + check-final-list

-> Sequelize Logs:


Executing (default): SELECT "id", "firstname", "lastname", "age", "createdAt", "updatedAt" FROM "customers" AS "customer";
Executing (default): SELECT "id", "firstname", "lastname", "age", "createdAt", "updatedAt" FROM "customers" AS "customer" WHERE "customer"."id" = '1';
Executing (default): UPDATE "customers" SET "id"=1,"firstname"='Robert',"lastname"='Thomas',"age"=36,"createdAt"='2018-07-11 08:31:06.976 +00:00',"updatedAt"='2018-07-11 08:32:42.344 +00:00' WHERE "id" = 1
Executing (default): SELECT "id", "firstname", "lastname", "age", "createdAt", "updatedAt" FROM "customers" AS "customer";
Executing (default): SELECT "id", "firstname", "lastname", "age", "createdAt", "updatedAt" FROM "customers" AS "customer" WHERE "customer"."id" = '2';
Executing (default): DELETE FROM "customers" WHERE "id" = '2'
Executing (default): SELECT "id", "firstname", "lastname", "age", "createdAt", "updatedAt" FROM "customers" AS "customer";
Executing (default): INSERT INTO "customers" ("id","firstname","lastname","age","createdAt","updatedAt") VALUES (DEFAULT,'Maria','Garcia',39,'2018-07-11 08:33:04.390 +00:00','2018-07-11 08:33:04.390 +00:00') RETURNING *;

-> PostgreSQL’s records:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + fina-postgresql-records

Node.js/Express RestAPIs

Node.js exposes 5 RestAPIs as below:

  • router.post(‘/api/customers’, customers.create);
  • router.get(‘/api/customers’, customers.findAll);
  • router.get(‘/api/customers/:id’, customers.findOne);
  • router.put(‘/api/customers’, customers.update);
  • router.delete(‘/api/customers/:id’, customers.delete);

– Configure cross-origin for Angular-Client which running at port: 4200.


const cors = require('cors')
const corsOptions = {
  origin: 'http://localhost:4200',
  optionsSuccessStatus: 200
}
app.use(cors(corsOptions))

Angular 12 HttpClient

Use Angular HttpClient APIs to do Get/Post/Put/Delete requests to Node.js RestAPIs:

// 1. GET All Customers from remote SpringBoot API <code>@GetMapping(value="/api/customers")
getCustomers (): Observable<Customer[]> {
	return this.http.get<Customer[]>(this.customersUrl)
}
 
// 2. GET a Customer from remote SpringBoot API <code>@GetMapping(value="/api/customers/{id}")
getCustomer(id: number): Observable<Customer> {
	const url = `${this.customersUrl}/${id}`;
	return this.http.get<Customer>(url);
}
 
// 3. POST a Customer to remote SpringBoot API <code>@PostMapping(value="/api/customers")
addCustomer (customer: Customer): Observable<Customer> {
	return this.http.post<Customer>(this.customersUrl, customer, httpOptions);
}
 
// 4.DELETE a Customer from remote SpringBoot API <code>@DeleteMapping(value="/api/customers/{id}")
deleteCustomer (customer: Customer | number): Observable<Customer> {
	const id = typeof customer === 'number' ? customer : customer.id;
	const url = `${this.customersUrl}/${id}`;
 
	return this.http.delete<Customer>(url, httpOptions);
}
 
// 5. PUT a Customer to remote SpringBoot API <code>@PutMapping(value="/api/customers")
updateCustomer (customer: Customer): Observable<any> {
	return this.http.put(this.customersUrl, customer, httpOptions);
}

Practice

Node.js Express RestAPIs

Setting up NodeJs/Express project

Following the guide to create a NodeJS/Express project.

Install Express, Sequelize, PostgreSQL, and Cors:


$npm install express sequelize pg pg-hstore cors --save

– Express is one of the most popular web frameworks for NodeJs which is built on top of Node.js http module, and adds support for routing, middleware, view system etc.
– Cors is a mechanism that uses HTTP headers to tell a browser to let a web application running at one origin (domain) have permission to access selected resources from a server at a different origin.
– Sequelize is a promise-based ORM for Node.js v4 and up. It supports the dialects PostgreSQL, MySQL …

-> package.json file:


{
  "name": "nodejs-express-sequelizejs-postgresql",
  "version": "1.0.0",
  "description": "nodejs-express-sequelizejs-postgresql",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "Angular-6-Client-NodeJs-Express-RestAPIs-SequelizeJs-CRUD-PostgreSQL"
  ],
  "author": "JSA",
  "license": "ISC",
  "dependencies": {
    "cors": "^2.8.4",
    "express": "^4.16.3",
    "pg": "^7.4.3",
    "pg-hstore": "^2.3.2",
    "sequelize": "^4.37.6"
  }
}

Setting up Sequelize PostgreSQL connection

– Create ‘./app/config/env.js’ file:


const env = {
  database: 'test',
  username: 'postgres',
  password: '123',
  host: 'localhost',
  dialect: 'postgres',
  pool: {
	  max: 5,
	  min: 0,
	  acquire: 30000,
	  idle: 10000
  }
};
 
module.exports = env;

– Setup Sequelize-PostgreSQL connection in ‘./app/config/db.config.js’ file:


const env = require('./env.js');
 
const Sequelize = require('sequelize');
const sequelize = new Sequelize(env.database, env.username, env.password, {
  host: env.host,
  dialect: env.dialect,
  operatorsAliases: false,
 
  pool: {
    max: env.max,
    min: env.pool.min,
    acquire: env.pool.acquire,
    idle: env.pool.idle
  }
});
 
const db = {};
 
db.Sequelize = Sequelize;
db.sequelize = sequelize;
 
//Models/tables
db.customers = require('../model/customer.model.js')(sequelize, Sequelize);
 
module.exports = db;

Create Sequelize model

Create file ./app/model/customer.model.js file:


module.exports = (sequelize, Sequelize) => {
	const Customer = sequelize.define('customer', {
	  firstname: {
		type: Sequelize.STRING
	  },
	  lastname: {
		type: Sequelize.STRING
	  },
	  age: {
		  type: Sequelize.INTEGER
	  }
	});
	
	return Customer;
}

Express RestAPIs

Route ->
Define Customer’s routes in ‘./app/controller/customer.route.js’ file:


module.exports = function(app) {
    const customers = require('../controller/customer.controller.js');
 
    // Create a new Customer
    app.post('/api/customers', customers.create);
 
    // Retrieve all Customer
    app.get('/api/customers', customers.findAll);
 
    // Retrieve a single Customer by Id
    app.get('/api/customers/:id', customers.findById);
 
    // Update a Customer with Id
    app.put('/api/customers', customers.update);
 
    // Delete a Customer with Id
    app.delete('/api/customers/:id', customers.delete);
}

Controller
Implement Customer’s controller in ‘./app/controller/customer.controller.js’ file:


const db = require('../config/db.config.js');
const Customer = db.customers;

// Post a Customer
exports.create = (req, res) => {	
	// Save to PostgreSQL database
	Customer.create({
				"firstname": req.body.firstname, 
				"lastname": req.body.lastname, 
				"age": req.body.age
			}).then(customer => {		
			// Send created customer to client
			res.json(customer);
		}).catch(err => {
			console.log(err);
			res.status(500).json({msg: "error", details: err});
		});
};
 
// FETCH All Customers
exports.findAll = (req, res) => {
	Customer.findAll().then(customers => {
			// Send All Customers to Client
			res.json(customers.sort(function(c1, c2){return c1.id - c2.id}));
		}).catch(err => {
			console.log(err);
			res.status(500).json({msg: "error", details: err});
		});
};

// Find a Customer by Id
exports.findById = (req, res) => {	
	Customer.findById(req.params.id).then(customer => {
			res.json(customer);
		}).catch(err => {
			console.log(err);
			res.status(500).json({msg: "error", details: err});
		});
};
 
// Update a Customer
exports.update = (req, res) => {
	const id = req.body.id;
	Customer.update( req.body, 
			{ where: {id: id} }).then(() => {
				res.status(200).json( { mgs: "Updated Successfully -> Customer Id = " + id } );
			}).catch(err => {
				console.log(err);
				res.status(500).json({msg: "error", details: err});
			});
};

// Delete a Customer by Id
exports.delete = (req, res) => {
	const id = req.params.id;
	Customer.destroy({
			where: { id: id }
		}).then(() => {
			res.status(200).json( { msg: 'Deleted Successfully -> Customer Id = ' + id } );
		}).catch(err => {
			console.log(err);
			res.status(500).json({msg: "error", details: err});
		});
};

Server.js

server.js ->


var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json())
 
const cors = require('cors')
const corsOptions = {
  origin: 'http://localhost:4200',
  optionsSuccessStatus: 200
}
 
app.use(cors(corsOptions))
 
const db = require('./app/config/db.config.js');
  
// force: true will drop the table if it already exists
db.sequelize.sync({force: true}).then(() => {
  console.log('Drop and Resync with { force: true }');
  initial();
});
 
require('./app/route/customer.route.js')(app);
 
// Create a Server
var server = app.listen(8080, function () {
 
  let host = server.address().address
  let port = server.address().port
 
  console.log("App listening at http://%s:%s", host, port);
})
 
function initial(){
 
  let customers = [
    {
      firstname: "Joe",
      lastname: "Thomas",
      age: 36
    },
    {
      firstname: "Peter",
      lastname: "Smith",
      age: 18
    },
    {
      firstname: "Lauren",
      lastname: "Taylor",
      age: 31
    },
    {
      firstname: "Mary",
      lastname: "Taylor",
      age: 24
    },
    {
      firstname: "David",
      lastname: "Moore",
      age: 25
    },
    {
      firstname: "Holly",
      lastname: "Davies",
      age: 27
    },
    {
      firstname: "Michael",
      lastname: "Brown",
      age: 45
    }
  ]
 
  // Init data -> save to PostgreSQL
  const Customer = db.customers;
  for (let i = 0; i < customers.length; i++) { 
    Customer.create(customers[i]);  
  }
}

Angular 12 Client

Data Model

customer.ts ->


export class Customer {
    id: number;
    firstname: string;
    lastname: string;
    age: number;
}

Configure AppModule

In the developed application, we use:

  • Angular Forms -> for building form
  • HttpClient -> for http Get/Post/Put/Delete requests
  • AppRouting -> for app routing

-> Modify AppModule app.module.ts:


import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
 
import { FormsModule }   from '@angular/forms';
import { HttpClientModule }    from '@angular/common/http';
 
import { AppRoutingModule }     from './app-routing/app-routing.module';
 
import { AppComponent } from './app.component';
import { CustomerComponent } from './customer/customer.component';
import { CustomerDetailsComponent } from './customer-details/customer-details.component';
import { AddCustomerComponent } from './add-customer/add-customer.component';
 
@NgModule({
  declarations: [
    AppComponent,
    CustomerComponent,
    CustomerDetailsComponent,
    AddCustomerComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    AppRoutingModule,
    HttpClientModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

HttpClient DataService

Implement CustomerService customer.service.ts with HttpClient for Get/Post/Put/Delete:


import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { Customer } from './customer';

const httpOptions = {
  headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};

@Injectable({
  providedIn: 'root'
})
export class CustomerService {
  private customersUrl = 'http://localhost:8080/api/customers';  // URL to web api
  constructor( 
    private http: HttpClient
  ) { }

  getCustomers (): Observable {
    return this.http.get(this.customersUrl)
  }

  getCustomer(id: number): Observable {
    const url = `${this.customersUrl}/${id}`;
    return this.http.get(url);
  }

  addCustomer (customer: Customer): Observable {
    return this.http.post(this.customersUrl, customer, httpOptions);
  }

  deleteCustomer (customer: Customer | number): Observable {
    const id = typeof customer === 'number' ? customer : customer.id;
    const url = `${this.customersUrl}/${id}`;

    return this.http.delete(url, httpOptions);
  }

  updateCustomer (customer: Customer): Observable {
    return this.http.put(this.customersUrl, customer, httpOptions);
  }
}

Angular Router

Implement App-Routing module app-routing.module.ts:


import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { CustomerComponent } from '../customer/customer.component';
import { AddCustomerComponent } from '../add-customer/add-customer.component';
import { CustomerDetailsComponent } from '../customer-details/customer-details.component';
 
const routes: Routes = [
   { 
     path: 'customers', 
     component: CustomerComponent 
   },
   { 
     path: 'customer/add', 
     component: AddCustomerComponent 
   },
   { 
     path: 'customers/:id', 
     component: CustomerDetailsComponent 
   },
   { 
     path: '', 
     redirectTo: 'customers', 
     pathMatch: 'full'
   }, 
];
 
@NgModule({
  imports: [ RouterModule.forRoot(routes) ],
  exports: [ RouterModule ]
})
 
export class AppRoutingModule {}

Router Outlet & Router Links

-> Questions:

  • How to show Componenets with Angular Routers? -> Solution: using Router Outlet
  • How to handle the routing that comes from user’s actions? (like clicks on anchor tag) -> Solution: using Router Link

-> We can achieve above functions by using Angular’s router-outlet and routerLink.

Modify the template file app.component.html of AppComponenet component as below:

<div class="container">
  <div class="row">
    <div class="col-sm-4">  
      <h1>Angular HttpClient</h1>
      <ul class="nav justify-content-center">
          <li class="nav-item">
              <a routerLink="customers" class="btn btn-light btn-sm" role="button" routerLinkActive="active">Retrieve</a> 
          </li>
          <li class="nav-item">
              <a routerLink="customer/add" class="btn btn-light btn-sm" role="button" routerLinkActive="active">Create</a>
          </li>
      </ul>
      <hr>
      <router-outlet></router-outlet>
    </div>
  </div>
</div>

Customer Component

Customer Component ->

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + retrieve-all

– Implement CustomerComponent class customer.component.ts:


import { Component, OnInit } from '@angular/core';
import { Customer } from '../customer';
import { CustomerService } from '../customer.service';
 
 
@Component({
  selector: 'app-customer',
  templateUrl: './customer.component.html',
  styleUrls: ['./customer.component.css']
})
 
export class CustomerComponent  implements OnInit {
 
  customers: Customer[];
 
  constructor(private customerService: CustomerService) {}
 
  ngOnInit(): void {
     this.getCustomers();
  }
 
  getCustomers() {
    return this.customerService.getCustomers()
               .subscribe(
                 customers => {
                  console.log(customers);
                  this.customers = customers
                 }
                );
 }
}

– Implement the template customer.component.html :

<h5>All Customers</h5>
<div *ngFor="let cust of customers">
  <a [routerLink]="['/customers', cust.id]" style="color:black"><span class="badge badge-dark">{{cust.id}}</span> -> {{ cust.firstname }}</a>
</div>

Customer Detail Component

Customer Detail ->

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + update-form

-> results:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + update-result

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + delete-result

– Implement CustomerDetails class customer-details.component.ts:


import { Component, OnInit } from '@angular/core';
import { Customer } from '../customer';
import { CustomerService } from '../customer.service';
 
import { ActivatedRoute, Params } from '@angular/router';
import { Location } from '@angular/common';
 
@Component({
  selector: 'app-customer-details',
  templateUrl: './customer-details.component.html',
  styleUrls: ['./customer-details.component.css']
})
export class CustomerDetailsComponent implements OnInit {
 
  customer = new Customer() ;
  submitted = false;
  message: string;
 
  constructor(
    private customerService: CustomerService,
    private route: ActivatedRoute,
    private location: Location
  ) {}
 
  ngOnInit(): void {
    const id = +this.route.snapshot.paramMap.get('id');
    this.customerService.getCustomer(id)
      .subscribe(customer => this.customer = customer);
  }
 
  update(): void {
    this.submitted = true;
    this.customerService.updateCustomer(this.customer)
        .subscribe(() => this.message = "Customer Updated Successfully!");
  }
 
  delete(): void {
    this.submitted = true;
    this.customerService.deleteCustomer(this.customer.id)
        .subscribe(()=> this.message = "Customer Deleted Successfully!");
  }
 
  goBack(): void {
    this.location.back();
  }
}

– Implement CustomerDetailsComponent template customer-details.component.html :

<h4><span class="badge badge-light ">{{customer.id}}</span> -> {{customer.firstname}}</h4>
<div [hidden]="submitted">
    <form  #detailCustomerForm="ngForm">
      <div class="form-group">
        <label for="firstname">First Name</label>
        <input type="text" class="form-control" id="firstname" required
        [(ngModel)]="customer.firstname" name="firstname" #firstname="ngModel">
        <div [hidden]="firstname.valid || firstname.pristine"
             class="alert alert-danger">
            First Name is required
        </div>
      </div>
      
      <div class="form-group">
        <label for="lastname">Last Name</label>
        <input type="text" class="form-control" id="lastname" required
        [(ngModel)]="customer.lastname" name="lastname" #lastname="ngModel">
        <div [hidden]="lastname.valid || lastname.pristine"
             class="alert alert-danger">
            Last Name is required
        </div>
      </div>
      
      <div class="form-group">
        <label for="age">Age</label>
        <input type="number" class="form-control" id="age" required
        [(ngModel)]="customer.age" name="age" #age="ngModel">
        <div [hidden]="age.valid || age.pristine"
             class="alert alert-danger">
            Age is required
        </div>
      </div>

      <div class="btn-group btn-group-sm">
        <button type="button" class="btn btn-dark" (click)="goBack()">Back</button>
        <button type="button" class="btn btn-dark" (click)="update()" [disabled]="!detailCustomerForm.form.valid">Update</button>
        <button type="button" class="btn btn-dark" (click)="delete()">Delete</button>
	    </div>
    </form>
</div>
 
<div [hidden]="!submitted">
    <p>{{message}}</p>
    <div class="btn-group btn-group-sm">
      <button type="button" class="btn btn-dark" (click)="goBack()">Back</button>
    </div>
</div>

We can change the value of ng-valid & ng-invalid for more visual feedback,
-> Create ./assets/forms.css file:


.ng-valid[required], .ng-valid.required  {
    border-left: 5px solid rgba(32, 77, 32, 0.623);
}
 
.ng-invalid:not(form)  {
    border-left: 5px solid rgb(148, 27, 27);
}

Add ./assets/forms.css file to index.html :

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Angular6Httpclient</title>
  <base href="/">
 
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <link rel="stylesheet" href="assets/forms.css">
</head>
<body>
  <app-root></app-root>
</body>
</html>

Add-Customer Component

AddCustomer Component ->

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + add-new

-> result:

angular-6-http-client-nodejs-express-sequelize-crud-postgresql + add-result

– Implement AddCustomerComponent class add-customer.component.ts:


import { Component, OnInit } from '@angular/core';
import { Customer } from '../customer';
import { CustomerService } from '../customer.service';

import { Location } from '@angular/common';

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

export class AddCustomerComponent{

  customer = new Customer();
  submitted = false;

  constructor(
    private customerService: CustomerService,
    private location: Location
  ) { }

  newCustomer(): void {
    this.submitted = false;
    this.customer = new Customer();
  }

 addCustomer() {
   this.submitted = true;
   this.save();
 }

  goBack(): void {
    this.location.back();
  }

  private save(): void {
    this.customerService.addCustomer(this.customer)
        .subscribe();
  }
}

– Implement the template add-customer.component.html:

<h3>Add Customer</h3>
<div [hidden]="submitted">
    <form #addCustomerForm="ngForm">

      <div class="form-group">
        <label for="firstname">First Name</label>
        <input type="text" class="form-control" id="firstname" placeholder="Give Customer's FirstName" 
        required
        [(ngModel)]="customer.firstname" name="firstname" #firstname="ngModel">
        <div [hidden]="firstname.valid || firstname.pristine"
             class="alert alert-danger">
            First Name is required
        </div>
      </div>
      
      <div class="form-group">
        <label for="lastname">Last Name</label>
        <input type="text" class="form-control" id="lastname" placeholder="Give Customer's LastName"
        required
        [(ngModel)]="customer.lastname" name="lastname" #lastname="ngModel">
        <div [hidden]="lastname.valid || lastname.pristine"
             class="alert alert-danger">
            Last Name is required
        </div>
      </div>
      
      <div class="form-group">
        <label for="age">Age</label>
        <input type="number" class="form-control" id="age" 
        placeholder="Give Customer's Age"
        required
        [(ngModel)]="customer.age" name="age" #age="ngModel">
        <div [hidden]="age.valid || age.pristine"
             class="alert alert-danger">
            Age is required
        </div>
      </div>
      
      <div class="btn-group btn-group-sm">
      	<button type="button" class="btn btn-dark" (click)="goBack()">Back</button>
      	<button type="button" class="btn btn-dark" (click)="addCustomer()" [disabled]="!addCustomerForm.form.valid">Add</button>
      </div>
    </form>
</div>

<div [hidden]="!submitted">
  <p>Submitted Successfully! -> <span class="badge badge-light">{{customer.firstname}}  {{customer.lastname}}</span></p>
	<div class="btn-group btn-group-sm">
    	<button type="button" class="btn btn-dark" (click)="goBack()">Back</button>
    	<button type="button" class="btn btn-dark" (click)="newCustomer(); addCustomerForm.reset()">Continue</button>
    </div>
</div>

SourceCode

- Angular-6-Http-Client
- Nodejs-Express-Sequelizejs-PostgreSQL

1,862 thoughts on “Angular 12 HttpClient – Nodejs/Express PostgreSQL Sequelize CRUD APIs Example”

  1. I’ve been browsing online more than 3 hours today, yet I
    never found any interesting article like yours.
    It’s pretty worth enough for me. In my opinion, if all website owners and bloggers
    made good content as you did, the net will be a lot more
    useful than ever before.

  2. When someone writes an piece of writing he/she maintains the idea of
    a user in his/her brain that how a user can know it.
    Thus that’s why this piece of writing is perfect. Thanks!

  3. Someone necessarily assist to make critically articles I would
    state. This is the very first time I frequented your website page and
    thus far? I surprised with the research you made to make this actual post incredible.

    Great process!

  4. I know this site provides quality depending content and other data, is there any other web site which gives these kinds of data in quality?

  5. Good way of explaining, and fastidious post to take data on the topic of my presentation topic,which i am going to present in institution of higher education.

  6. Hi! This is kind of off topic but I need some advice from an established blog.
    Is it very hard to set up your own blog? I’m not very techincal
    but I can figure things out pretty fast. I’m thinking about setting up my
    own but I’m not sure where to begin. Do you have any tips or suggestions?
    With thanks

  7. Hey! Do you know if they make any plugins to help with Search Engine Optimization? I’m trying to get my blog to
    rank for some targeted keywords but I’m not seeing very good results.

    If you know of any please share. Many thanks!

  8. After looking over a handful of the blog articles on your blog,
    I honestly like your way of writing a blog. I bookmarked
    it to my bookmark website list and will be checking back in the near future.
    Take a look at my web site too and tell me
    what you think.

  9. I’m not that much of a internet reader to be honest
    but your sites really nice, keep it up! I’ll go ahead and bookmark your website to come back down the road.

    Many thanks

  10. I’m not sure exactly why but this site is loading very slow for me.
    Is anyone else having this issue or is it a issue on my end?

    I’ll check back later on and see if the problem still exists.

  11. Thanks for your personal marvelous posting! I quite enjoyed reading
    it, you might be a great author.I will ensure that I bookmark your blog and will often come back later in life.
    I want to encourage one to continue your great
    writing, have a nice day!

  12. Hi! I could have sworn I’ve visited this blog before but after going through many
    of the articles I realized it’s new to me. Nonetheless,
    I’m definitely happy I found it and I’ll be book-marking
    it and checking back often!

  13. Whats up are using WordPress for your site platform?
    I’m new to the blog world but I’m trying to get started and set up my
    own. Do you require any coding expertise to make your own blog?
    Any help would be really appreciated!

  14. Hey there! I realize this is kind of off-topic however I needed to ask.
    Does building a well-established website like yours require a massive amount work?
    I am completely new to writing a blog but I do write in my diary on a daily basis.
    I’d like to start a blog so I can easily share my personal experience and thoughts online.
    Please let me know if you have any kind of suggestions or tips for new aspiring blog owners.
    Thankyou!

  15. Pretty portion of content. I just stumbled upon your
    web site and in accession capital to assert that I get in fact
    loved account your blog posts. Any way I’ll be
    subscribing for your augment and even I success you get entry to persistently rapidly.

  16. Hey there this is kinda of off topic but I was wondering if blogs use WYSIWYG
    editors or if you have to manually code with HTML. I’m starting a blog soon but have no
    coding experience so I wanted to get guidance from someone with
    experience. Any help would be greatly appreciated!

  17. Hey there would you mind stating which blog platform you’re working with?
    I’m planning to start my own blog soon but I’m
    having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design and style seems different then most
    blogs and I’m looking for something unique.
    P.S Apologies for being off-topic but I had to ask!

  18. Grand Theft Auto 5 isn’t just a video game franchise.
    It’s a symbol for an entire category of online games.It is a long-running
    story of criminally insane crazy people on a self-destructing
    journey to the edge of hell. The game is set within the glittering
    and pretentious Los Angeles city Los Santos. It is a mirror of the blood-splattered existence of the majority of residents
    of Los Angeles. It features some of the most amazing imagery of the dense Downtown Los Santos with all its
    tall buildings and garbage filled avenues. This
    is not just another enjoyable game, but also an appropriate satire
    on contemporary American life.

  19. I think that everything published made a bunch of sense. But, think on this, what if you were to
    write a awesome post title? I am not saying your information is not solid., however suppose you added a title to maybe grab
    a person’s attention? I mean ozenero | Mobile & Web Programming Tutorials is a little plain. You ought
    to look at Yahoo’s front page and watch how they create post headlines to get people to click.

    You might add a related video or a pic or two to grab readers
    excited about what you’ve got to say. Just my opinion, it would make your website a little livelier.

  20. I believe this is one of the most important information for me.
    And i’m satisfied studying your article. But should statement on some basic things, The website style
    is ideal, the articles is really great : D. Good activity,
    cheers

  21. Good day! I could have sworn I’ve visited this site before but after
    looking at some of the articles I realized it’s new to me.

    Anyhow, I’m definitely pleased I came across it and I’ll be book-marking it and
    checking back frequently!

  22. I believe this is one of the so much vital information for me.
    And i’m happy studying your article. However wanna commentary on few normal issues,
    The web site taste is wonderful, the articles is truly
    excellent : D. Just right activity, cheers

  23. Please let me know if you’re looking for a article writer for your weblog.
    You have some really good articles and I feel I would be a good asset.
    If you ever want to take some of the load off,
    I’d love to write some material for your blog in exchange for a link back
    to mine. Please blast me an e-mail if interested. Thanks!

  24. Thank you for sharing excellent informations. Your web site is very cool. I’m impressed by the details that you have on this website. It reveals how nicely you perceive this subject. Bookmarked this website page, will come back for more articles. You, my pal, ROCK! I found just the info I already searched all over the place and simply couldn’t come across. What a great website.

  25. Great blog! Is your theme custom made or did you download it from somewhere?
    A theme like yours with a few simple adjustements
    would really make my blog jump out. Please let me know where you got your design. Thanks

  26. Do you have a spam issue on this website; I also am a blogger,
    and I was wanting to know your situation; we have developed some nice methods and we are looking
    to exchange techniques with others, why not shoot me an e-mail if interested.

  27. Every weekend i used to pay a visit this web site,
    for the reason that i wish for enjoyment, since this this web page
    conations really good funny data too.

  28. you’re really a just right webmaster. The web site loading speed is incredible.
    It kind of feels that you’re doing any unique trick.
    Moreover, The contents are masterwork. you have performed a fantastic process in this matter!

  29. What i do not realize is in fact how you’re now not actually much more well-preferred than you might be now. You are so intelligent. You know therefore considerably relating to this subject, produced me for my part believe it from a lot of varied angles. Its like women and men don’t seem to be involved until it is something to do with Woman gaga! Your personal stuffs outstanding. Always deal with it up!

  30. Can I simply just say what a relief to find a person that really
    knows what they’re discussing on the internet. You actually know how to bring an issue to light and
    make it important. More people should look at this and understand this side of
    the story. I was surprised you’re not more popular given that
    you definitely possess the gift.

  31. Politechnika Częstochowska

    ul. J.H. Dąbrowskiego 69
    42-201 Częstochowa
    NIP: 573-011-14-01
    Informacje

    bip.svgBiuletyn Informacji Publicznej

    Zamówienia Publiczne

    Informacje o cookies

    Deklaracja dostępności

    Inspektor Ochrony Danych

    SARS-CoV-2
    Wydziały

    Wydział Budownictwa

    Wydział Elektryczny

    Wydział Inżynierii Mechanicznej i Informatyki

    Wydział Inżynierii Produkcji i Technologii Materiałów

    Wydział Infrastruktury i Środowiska

    Wydział Zarządzania

    logo ePUAP

    Adres skrytki podawczej Politechniki Częstochowskiej w systemie ePUAP:
    /PolitechnikaCzestochowska/SkrytkaESP

  32. I truly love your blog.. Excellent colors & theme. Did you make this
    site yourself? Please reply back as I’m looking to create my very own blog and
    want to learn where you got this from or exactly
    what the theme is called. Appreciate it!

  33. Magnificent beat ! I wish to apprentice even as you amend your website,
    how can i subscribe for a blog web site? The account helped me a applicable deal.
    I have been a little bit acquainted of this your broadcast provided bright clear concept

  34. My programmer is trying to convince me to move to .net from PHP.
    I have always disliked the idea because of the expenses.
    But he’s tryiong none the less. I’ve been using Movable-type on several websites for about
    a year and am nervous about switching to another platform.
    I have heard great things about blogengine.net. Is there a way I can import all my wordpress content into it?
    Any kind of help would be greatly appreciated!

  35. After research a number of of the blog posts on your web site now, and I truly like your means of blogging. I bookmarked it to my bookmark website checklist and will be checking again soon. Pls check out my web page as nicely and let me know what you think.

  36. Wonderful post but I was wondering if you could write a litte more on this subject? I’d be very grateful if you could elaborate a little bit further. Cheers!

  37. I have not checked in here for some time as I thought it was getting boring, but the last few posts are great quality so I guess I’ll add you back to my everyday bloglist. You deserve it my friend 🙂

  38. I was just looking for this information for a while. After six hours of continuous Googleing, at last I got it in your site. I wonder what is the lack of Google strategy that don’t rank this kind of informative websites in top of the list. Usually the top sites are full of garbage.

  39. Hello! I know this is somewhat off-topic but I needed to ask.

    Does building a well-established website such as yours take
    a large amount of work? I am completely new to running a
    blog but I do write in my diary everyday. I’d like to start a blog so I will
    be able to share my experience and thoughts online.

    Please let me know if you have any recommendations or tips for new aspiring bloggers.
    Appreciate it!

  40. What’s up all, here every one is sharing such know-how, so it’s
    pleasant to read this weblog, and I used to go to see this web site daily.

  41. Excellent post. I was checking constantly this weblog
    and I’m impressed! Very helpful info particularly the ultimate phase 🙂 I deal with such info much.

    I used to be looking for this particular info for a very long time.
    Thanks and best of luck.

  42. It’s actually a nice and helpful piece of info.
    I am glad that you just shared this helpful information with us.
    Please stay us up to date like this. Thanks for sharing.

  43. I absolutely love your blog and find nearly all of your post’s to be precisely what I’m looking for.
    Do you offer guest writers to write content for you personally?
    I wouldn’t mind composing a post or elaborating
    on a number of the subjects you write in relation to here.
    Again, awesome web site!

  44. You are so interesting! I do not think I have read
    anything like this before. So nice to find another person with a few unique
    thoughts on this issue. Seriously.. thanks for starting this up.

    This site is something that is required on the web, someone with a little originality!

  45. Hi there every one, here every person is sharing such experience,
    therefore it’s fastidious to read this website,
    and I used to go to see this website every day.

  46. 203029 357579Thank you for the sensible critique. Me and my neighbor were just preparing to do some research on this. We got a grab a book from our area library but I think I learned a lot more clear from this post. Im quite glad to see such excellent information being shared freely out there. 949862

  47. Hey I know this is off topic but I was wondering
    if you knew of any widgets I could add to my blog that automatically tweet
    my newest twitter updates. I’ve been looking for a plug-in like this for quite some
    time and was hoping maybe you would have some experience with something like this.
    Please let me know if you run into anything. I truly enjoy reading
    your blog and I look forward to your new updates.

  48. Thanks for sharing superb informations. Your web-site is so cool. I am impressed by the details that you’ve on this blog. It reveals how nicely you perceive this subject. Bookmarked this web page, will come back for extra articles. You, my pal, ROCK! I found simply the info I already searched all over the place and just couldn’t come across. What an ideal web site.

  49. Hands down, Apple’s app store wins by a mile. It’s a huge selection of all sorts of apps vs a rather sad selection of a handful for Zune. Microsoft has plans, especially in the realm of games, but I’m not sure I’d want to bet on the future if this aspect is important to you. The iPod is a much better choice in that case.

  50. Hi, I think your blog might be having browser compatibility issues.
    When I look at your blog in Opera, it looks fine but when opening in Internet Explorer,
    it has some overlapping. I just wanted to give you a quick heads up!
    Other then that, amazing blog!

  51. I was curious if you ever considered changing the layout of your website?
    Its very well written; I love what youve got
    to say. But maybe you could a little more in the way
    of content so people could connect with it better. Youve
    got an awful lot of text for only having one or 2 images.
    Maybe you could space it out better?

  52. A motivating discussion is definitely worth comment.
    I do believe that you need to write more on this subject, it might not be a taboo subject but usually folks don’t speak about
    these issues. To the next! Cheers!!

  53. Everyone know the health benefits of eating yogurt because of the good bacteria.
    The bacteria found in yogurts at your local market
    are good but not great.
    Better yoghurts are available that make gcmaf these are
    alot better as gcmaf has more health benefits. These more expensive types of probiotic yoghurts usually contain 40 or more
    good bacteria, while supermarket yoghurts usally have a
    much less number of bacteria such as 1 or 4 but are there for the taste not always for the health.

  54. Thank you for any other wonderful post. The place else may just anyone get that type of information in such a perfect method
    of writing? I have a presentation subsequent week, and I’m
    at the search for such info.

  55. Hi there! Would you mind if I share your blog with my zynga group?
    There’s a lot of people that I think would really enjoy your content.
    Please let me know. Many thanks

  56. of course like your web site but you have to check the spelling on several of your posts. Many of them are rife with spelling issues and I find it very bothersome to tell the truth nevertheless I will certainly come back again.

  57. I was very pleased to uncover this great site.
    I wanted to thank you for your time just for this fantastic read!!
    I definitely appreciated every bit of it and I have you saved as a favorite to check out new things in your blog.

  58. Hi there! This post couldn’t be written any better! Reading through this post reminds me of my previous room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thank you for sharing!

  59. Do you have a spam problem on this website; I also am a blogger, and I was curious about your situation; many of us have developed some nice methods and we are looking to exchange strategies with other folks, please shoot me an email if interested.

  60. I loved as much as you’ll receive carried out right here. The
    sketch is attractive, your authored material stylish.
    nonetheless, you command get got an nervousness over that
    you wish be delivering the following. unwell unquestionably come further formerly again since exactly the same nearly very often inside case you shield this increase.

  61. I absolutely love your blog and find many of your post’s to be exactly what I’m looking for. can you offer guest writers to write content for yourself? I wouldn’t mind composing a post or elaborating on some of the subjects you write with regards to here. Again, awesome weblog!

  62. Does your blog have a contact page? I’m having a tough time locating it but, I’d like to send you an e-mail. I’ve got some recommendations for your blog you might be interested in hearing. Either way, great blog and I look forward to seeing it expand over time.

  63. I have not checked in here for a while because I thought it was getting boring, but the last several posts are great quality so I guess I¦ll add you back to my everyday bloglist. You deserve it my friend 🙂

  64. Howdy! Do you know if they make any plugins to help with SEO? I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very good gains. If you know of any please share. Cheers!

  65. Those are yours alright! . We at least need to get these people stealing images to start blogging! They probably just did a image search and grabbed them. They look good though!

  66. Thank you for the sensible critique. Me & my neighbor were just preparing to do a little research about this. We got a grab a book from our local library but I think I learned more from this post. I am very glad to see such excellent information being shared freely out there.

  67. It’s a pity you don’t have a donate button! I’d most certainly donate to this brilliant blog! I suppose for now i’ll settle for bookmarking and adding your RSS feed to my Google account. I look forward to new updates and will talk about this blog with my Facebook group. Talk soon!

  68. Hey there just wanted to give you a quick heads up. The text in your post seem to be running off the screen in Internet explorer. I’m not sure if this is a format issue or something to do with browser compatibility but I figured I’d post to let you know. The design look great though! Hope you get the problem resolved soon. Many thanks

  69. Hello I am so thrilled I found your weblog, I really found you by mistake,
    while I was searching on Aol for something else, Nonetheless I am here now and would just like to say cheers for a fantastic post
    and a all round enjoyable blog (I also love the theme/design), I don’t have time to go through it all at the moment but I have saved it and also
    included your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the great
    work.

  70. Hello outstanding blog! Does running a blog such as this require
    a large amount of work? I’ve no understanding of computer programming however
    I had been hoping to start my own blog soon. Anyways, if you have any
    ideas or techniques for new blog owners please share. I know
    this is off topic however I just wanted to ask. Thanks a lot!

  71. It’s the best time to make some plans for the future and it is time to be happy. I have read this submit and if I may I want to recommend you some fascinating issues or tips. Maybe you could write next articles referring to this article. I want to learn more issues about it!

  72. It’s appropriate time to make some plans for the long run and it is time to be happy. I have read this submit and if I may I want to counsel you some fascinating issues or suggestions. Maybe you could write subsequent articles regarding this article. I desire to read even more issues approximately it!

  73. Wow that was strange. I just wrote an extremely long comment but after I
    clicked submit my comment didn’t show up.
    Grrrr… well I’m not writing all that over again. Regardless, just wanted to say fantastic blog!

  74. Wonderful work! That is the type of information that are meant to be shared
    across the internet. Shame on Google for not positioning this
    publish upper! Come on over and consult with my web site .
    Thank you =)

  75. First of all I want to say awesome blog! I had
    a quick question which I’d like to ask if you do not mind.
    I was interested to find out how you center yourself and clear
    your head prior to writing. I’ve had a tough time clearing my mind in getting my thoughts out.

    I truly do enjoy writing but it just seems like the first 10 to
    15 minutes are usually wasted simply just trying to figure out how to begin. Any suggestions or tips?

    Thanks!

  76. Hello are using WordPress for your site platform? I’m new to the blog world but I’m trying to get started and create my own. Do you
    require any html coding expertise to make your own blog?
    Any help would be really appreciated!

  77. Nice post. I learn something more challenging on different blogs everyday. It will always be stimulating to read content from other writers and practice a little something from their store. I’d prefer to use some with the content on my blog whether you don’t mind. Natually I’ll give you a link on your web blog. Thanks for sharing.

  78. Hey there! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me. Anyways, I’m definitely delighted I found it and I’ll be book-marking and checking back frequently!

  79. Hi, i think that i saw you visited my web site so i came to “return the favor”.I am trying to find things to enhance my website!I suppose its ok to use a few of your ideas!!

  80. This design is incredible! You obviously know how
    to keep a reader amused. Between your wit and your videos,
    I was almost moved to start my own blog (well, almost…HaHa!) Great
    job. I really enjoyed what you had to say, and more than that,
    how you presented it. Too cool!

  81. I have been browsing online more than 4 hours today, yet I never found any interesting
    article like yours. It’s pretty worth enough for me.
    Personally, if all webmasters and bloggers made good content
    as you did, the internet will be much more useful
    than ever before.

  82. I would like to thank you for the efforts you’ve put in writing
    this blog. I am hoping to check out the same high-grade content from you later on as well.
    In truth, your creative writing abilities has encouraged me to get my very own blog now 😉

  83. Thanks for the marvelous posting! I quite enjoyed reading it, you will be a great author.
    I will make certain to bookmark your blog and may come back in the foreseeable
    future. I want to encourage yourself to continue your great posts, have a nice afternoon!

  84. When someone writes an piece of writing he/she keeps the plan of a user in his/her mind
    that how a user can be aware of it. So that’s
    why this post is outstdanding. Thanks!

  85. I do love the way you have presented this problem and it does indeed supply me personally a lot of fodder for thought. Nonetheless, because of everything that I have witnessed, I really hope as other remarks pack on that people today keep on issue and in no way start on a tirade regarding some other news of the day. All the same, thank you for this excellent piece and although I can not concur with the idea in totality, I value your viewpoint.

  86. This is really interesting, You’re a very skilled blogger.

    I’ve joined your rss feed and look forward to seeking more of your wonderful
    post. Also, I’ve shared your website in my social networks!

  87. Great website you have here but I was curious if you
    knew of any user discussion forums that cover the same topics talked
    about in this article? I’d really love to be a part of
    online community where I can get responses from other experienced people that
    share the same interest. If you have any suggestions, please let
    me know. Thanks a lot!

  88. Wow! This can be one particular of the most beneficial blogs We’ve ever arrive across on this subject. Actually Magnificent. I am also an expert in this topic therefore I can understand your effort.

  89. Howdy would you mind stating which blog platform you’re using?
    I’m going to start my own blog in the near future but I’m having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design seems different then most blogs and I’m looking for something completely unique.
    P.S Apologies for getting off-topic but I had to ask!

  90. Hey just wanted to give you a quick heads up. The text in your article seem to be running off the screen in Ie. I’m not sure if this is a format issue or something to do with web browser compatibility but I figured I’d post to let you know. The layout look great though! Hope you get the issue fixed soon. Many thanks

  91. I’m curious to find out what blog system you are working with?
    I’m having some minor security issues with my latest blog and I’d like to find something more risk-free.

    Do you have any solutions?

  92. An interesting discussion is worth comment. I do believe that you ought
    to publish more about this issue, it may not be a taboo subject but generally folks don’t discuss these subjects.
    To the next! All the best!!

  93. Hi there, I discovered your site by way of Google even as looking for a related topic, your website came up, it looks good.

    I’ve bookmarked it in my google bookmarks.
    Hello there, simply became aware of your weblog thru Google, and located that
    it’s really informative. I’m gonna watch out for brussels.
    I’ll appreciate should you proceed this in future.
    A lot of other people will be benefited out of your writing.

    Cheers!

  94. Thanks so much for giving everyone an exceptionally nice opportunity to read critical reviews from this blog. It is often so superb plus full of a lot of fun for me and my office peers to visit your web site on the least thrice a week to read the new stuff you have got. And definitely, I’m also certainly impressed with all the astounding creative concepts you give. Some 1 tips in this article are clearly the best we have all ever had.

  95. Very nice post. I just stumbled upon your blog and wanted
    to say that I’ve truly enjoyed browsing your weblog posts.
    After all I will be subscribing in your feed and I am hoping
    you write again soon!

  96. Fantastic beat ! I wish to apprentice even as you amend your site, how could i subscribe
    for a weblog site? The account helped me a applicable deal.
    I had been tiny bit acquainted of this your broadcast provided vibrant transparent concept

  97. I’m really loving the theme/design of your weblog. Do you ever run into any web
    browser compatibility issues? A few of my blog readers have complained about my blog not working correctly
    in Explorer but looks great in Opera. Do you have any advice to help fix this problem?

  98. What’s Taking place i’m new to this, I stumbled
    upon this I have discovered It absolutely useful and it has aided me out loads.
    I’m hoping to contribute & help other customers like its aided me.
    Good job.

  99. Simply want to say your article is as astonishing. The clearness in your post is just nice and i could assume you are an expert on this subject.
    Fine with your permission let me to grab your feed
    to keep updated with forthcoming post. Thanks a million and please
    keep up the enjoyable work.

  100. With havin so much content and articles do you ever run into any issues of plagorism or copyright infringement?

    My site has a lot of completely unique content I’ve either
    created myself or outsourced but it seems a lot of it is
    popping it up all over the internet without my agreement.
    Do you know any techniques to help reduce content from being ripped off?
    I’d definitely appreciate it.

  101. Hello superb website! Does running a blog such as this take
    a massive amount work? I have very little knowledge
    of coding but I had been hoping to start my own blog soon. Anyway, should you have any ideas
    or techniques for new blog owners please share. I know this is off topic however I just needed to ask.
    Kudos!

  102. Just wish to say your article is as surprising. The clarity to your post is simply great and
    that i could assume you are knowledgeable in this subject. Well with your permission let
    me to take hold of your feed to stay updated with impending
    post. Thank you 1,000,000 and please carry on the enjoyable work.

  103. This is the right webpage for everyone who would like to understand this topic.
    You understand a whole lot its almost hard to argue with you (not that I really will need to…HaHa).
    You definitely put a new spin on a subject that’s been discussed for decades.
    Great stuff, just wonderful!

  104. Hello there, I found your website by way of Google even as looking for a
    related matter, your site came up, it appears to be like good.
    I have bookmarked it in my google bookmarks.
    Hi there, simply turned into alert to your weblog
    via Google, and located that it is truly informative.
    I am going to be careful for brussels. I’ll be grateful should you continue this in future.

    Lots of other folks shall be benefited out of your writing.
    Cheers!

  105. We’re a group of volunteers and starting a new scheme in our community.
    Your site provided us with valuable information to work on. You’ve done a formidable job and our whole
    community will be grateful to you.

  106. whoah this weblog is great i love studying
    your articles. Keep up the good work! You understand, a lot of individuals are
    hunting around for this information, you can help them greatly.

  107. We absolutely love your blog and find a lot of your post’s to be exactly I’m
    looking for. Do you offer guest writers to write content for you personally?
    I wouldn’t mind producing a post or elaborating on a number of the subjects you write in relation to here.
    Again, awesome web site!

  108. Good day! I could have sworn I’ve been to this blog before but after checking
    through some of the post I realized it’s new to me.
    Nonetheless, I’m definitely delighted I found it and I’ll be
    book-marking and checking back often!

  109. This is really interesting, You are a very skilled blogger.
    I have joined your rss feed and look forward to seeking more of
    your magnificent post. Also, I’ve shared your website in my social networks!

  110. I’m really loving the theme/design of your website.
    Do you ever run into any internet browser compatibility problems?
    A couple of my blog readers have complained about my site not
    operating correctly in Explorer but looks great in Safari.

    Do you have any recommendations to help fix this issue?

  111. Undeniably imagine that which you said. Your favorite reason appeared to
    be at the net the easiest thing to have in mind of. I say to you, I certainly get
    annoyed whilst other folks think about concerns that they plainly do
    not know about. You controlled to hit the nail upon the highest and outlined out the entire
    thing with no need side-effects , other people could take a signal.
    Will probably be back to get more. Thank you

  112. Wow that was unusual. I just wrote an extremely long comment but after
    I clicked submit my comment didn’t appear.
    Grrrr… well I’m not writing all that over again. Anyhow, just wanted to say fantastic blog!

  113. Hey fantastic blog! Does running a blog like this
    take a massive amount work? I’ve virtually no knowledge of coding but I had been hoping to start my own blog in the near
    future. Anyways, should you have any recommendations or tips for new blog owners please share.
    I understand this is off subject however I simply had to ask.
    Thanks a lot!

  114. Interesting blog! Is your theme custom made or did you download it
    from somewhere? A design like yours with a few simple adjustements would really
    make my blog stand out. Please let me know where
    you got your theme. Kudos

  115. Simply want to say your article is as astounding.
    The clearness in your post is simply cool and i could assume you are an expert on this subject.
    Fine with your permission allow me to grab your feed to keep updated with forthcoming
    post. Thanks a million and please keep up the enjoyable work.

  116. Its such as you learn my mind! You seem to grasp a lot about this,
    such as you wrote the ebook in it or something.
    I believe that you simply could do with a few % to drive the message
    home a little bit, however other than that, that is excellent blog.
    A great read. I will definitely be back.

  117. Wonderful goods from you, man. I’ve understand your stuff previous to and
    you are just extremely great. I actually like what you have acquired here, certainly like what you’re
    saying and the way in which you say it. You make it enjoyable and you still take care of
    to keep it smart. I cant wait to read much more from you.

    This is really a great website.

  118. Unquestionably believe that which you stated. Your favorite reason seemed to be
    on the net the simplest thing to be aware of. I say
    to you, I certainly get annoyed while people think about worries that they plainly do not know about.
    You managed to hit the nail upon the top and also defined out the whole thing without having side-effects , people could take a signal.
    Will likely be back to get more. Thanks

  119. Hey are using WordPress for your blog platform?
    I’m new to the blog world but I’m trying to get started and set up my own. Do you
    require any coding knowledge to make your own blog?
    Any help would be greatly appreciated!

  120. This is a really good tip particularly to those new to the
    blogosphere. Brief but very accurate information… Many thanks for
    sharing this one. A must read post!

  121. Pretty nice post. I just stumbled upon your weblog and wanted to say that I’ve truly
    enjoyed browsing your blog posts. After all I will be subscribing to your feed
    and I hope you write again very soon!

  122. Thank you a lot for sharing this with all folks you actually recognise what you’re speaking
    approximately! Bookmarked. Please additionally visit my site =).

    We could have a link exchange contract among us

  123. This is very interesting, You are a very skilled blogger.
    I have joined your rss feed and look forward to seeking more of your magnificent post.
    Also, I’ve shared your site in my social networks!

  124. I was pretty pleased to discover this page. I need to to thank you for your time for this fantastic read!!
    I definitely loved every bit of it and I have you book-marked to look at new things on your web site.

  125. My spouse and I stumbled over here from a different web address and thought I may as well check things out.
    I like what I see so now i am following you. Look forward to looking into your web page yet again.

  126. Hey! I just wanted to ask if you ever have
    any trouble with hackers? My last blog (wordpress) was hacked and I
    ended up losing many months of hard work due to no back up.
    Do you have any methods to stop hackers?

  127. Hi, I think your site might be having browser compatibility issues.
    When I look at your blog in Opera, it looks fine but when opening in Internet Explorer, it has some overlapping.

    I just wanted to give you a quick heads up! Other then that, fantastic blog!

  128. Woah! I’m really digging the template/theme of
    this blog. It’s simple, yet effective. A lot of times it’s tough to
    get that “perfect balance” between user friendliness and appearance.
    I must say that you’ve done a fantastic job with this.
    Additionally, the blog loads super fast for me on Safari. Outstanding Blog!

  129. I’ve read a few excellent stuff here. Certainly worth bookmarking for revisiting.

    I wonder how a lot attempt you set to make this type of wonderful informative site.

  130. We’re a group of volunteers and starting a new scheme in our community.
    Your web site provided us with valuable info to work on. You have done an impressive job and our entire
    community will be thankful to you.

  131. My partner and I absolutely love your blog and
    find almost all of your post’s to be exactly what I’m looking for.
    Does one offer guest writers to write content in your case?
    I wouldn’t mind writing a post or elaborating on a lot of the
    subjects you write in relation to here. Again, awesome site!

  132. Terrific article! This is the type of information that are supposed
    to be shared across the internet. Shame on the
    seek engines for no longer positioning this post upper! Come on over and visit my web site
    . Thank you =)

  133. Have you ever thought about publishing an e-book or guest authoring on other blogs?
    I have a blog based on the same subjects you discuss and would really like to
    have you share some stories/information. I know my audience would appreciate your work.
    If you are even remotely interested, feel free to shoot me an email.

  134. Wonderful beat ! I would like to apprentice while you amend your web site, how
    can i subscribe for a blog web site? The account helped me a acceptable deal.
    I had been a little bit acquainted of this your broadcast offered bright
    clear concept

  135. Heya i am for the first time here. I found this board and I
    find It really useful & it helped me out a lot. I hope to give something back and aid others like you
    aided me.

  136. I think this is among the most important information for me.
    And i’m glad reading your article. But want to remark on some
    general things, The web site style is ideal, the articles is really excellent : D.

    Good job, cheers

  137. An interesting discussion is worth comment. I do think that you
    need to write more on this subject, it may not be
    a taboo subject but generally people do not speak about such topics.
    To the next! Best wishes!!

  138. great submit, very informative. I ponder why the other experts of this sector don’t understand this.
    You must continue your writing. I’m confident, you have a huge readers’
    base already!

  139. I’m amazed, I must say. Seldom do I come across a blog that’s equally educative and entertaining,
    and let me tell you, you have hit the nail on the head.
    The issue is something that too few people are speaking intelligently about.

    I’m very happy I came across this in my hunt for something regarding this.

  140. Unquestionably believe that which you stated. Your favorite reason seemed to be on the net the easiest
    thing to be aware of. I say to you, I certainly get annoyed while people think about worries that they plainly don’t know about.
    You managed to hit the nail upon the top as well as defined
    out the whole thing without having side-effects , people can take a signal.

    Will likely be back to get more. Thanks

  141. Pretty component to content. I simply stumbled upon your weblog and
    in accession capital to say that I acquire in fact loved account your
    weblog posts. Any way I’ll be subscribing on your feeds and
    even I success you access consistently quickly.

  142. hello there and thank you for your info – I have definitely
    picked up anything new from right here. I did however expertise a few technical issues using this site, since I experienced to reload the web site lots of times previous to
    I could get it to load correctly. I had been wondering if
    your web hosting is OK? Not that I’m complaining, but slow loading instances times will sometimes
    affect your placement in google and can damage your quality score if ads and marketing with Adwords.

    Anyway I am adding this RSS to my e-mail and can look out for much more
    of your respective intriguing content. Make sure you update this
    again soon.

  143. Does your blog have a contact page? I’m having trouble locating it but, I’d
    like to shoot you an email. I’ve got some creative ideas
    for your blog you might be interested in hearing. Either way, great blog and I look forward
    to seeing it grow over time.

  144. Thank you for every other great article. Where else could anyone get that kind of information in such an ideal means of writing?
    I have a presentation next week, and I am at the search for
    such info.

  145. I’ll immediately clutch your rss as I can not find your e-mail subscription link or e-newsletter service.
    Do you have any? Kindly let me know so that I may just subscribe.
    Thanks.

  146. Hey fantastic website! Does running a blog like this require a
    massive amount work? I have absolutely no knowledge of programming but
    I had been hoping to start my own blog soon. Anyhow, should you have any
    recommendations or tips for new blog owners please share.

    I know this is off topic nevertheless I just wanted to ask.
    Many thanks!

  147. Fantastic items from you, man. I have bear in mind your stuff prior
    to and you are just too wonderful. I actually like what you have bought here,
    really like what you are stating and the way during which you are saying
    it. You make it entertaining and you still take care of to keep it wise.
    I cant wait to read far more from you. This is actually a
    wonderful web site.

  148. Woah! I’m really enjoying the template/theme
    of this blog. It’s simple, yet effective. A lot of times it’s hard to get that “perfect balance” between superb usability and appearance.

    I must say you have done a awesome job with this.
    In addition, the blog loads very fast for
    me on Chrome. Excellent Blog!

  149. I just like the valuable info you supply in your articles.

    I’ll bookmark your blog and test once more right here regularly.
    I am rather sure I will be informed many new stuff proper right here!
    Good luck for the next!

  150. I’m not sure exactly why but this website is loading extremely slow for me.
    Is anyone else having this issue or is it a problem on my end?
    I’ll check back later on and see if the problem still exists.

  151. whoah this weblog is great i really like reading your
    posts. Keep up the good work! You understand, lots of individuals are searching around for this
    information, you can aid them greatly.

  152. Unquestionably imagine that that you said. Your favorite reason appeared
    to be on the net the simplest thing to take into accout
    of. I say to you, I definitely get annoyed at the same time as people think about concerns that they plainly don’t understand about.
    You managed to hit the nail upon the top and defined
    out the whole thing with no need side effect , other people can take a signal.
    Will probably be back to get more. Thanks

  153. Today, I went to the beach front with my children. I found a sea
    shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell
    to her ear and screamed. There was a hermit crab inside and
    it pinched her ear. She never wants to go back!
    LoL I know this is totally off topic but I had to
    tell someone!

  154. Hey there just wanted to give you a brief heads up and let you
    know a few of the images aren’t loading correctly. I’m not sure why
    but I think its a linking issue. I’ve tried it in two
    different browsers and both show the same results.

  155. That is very fascinating, You’re an overly professional blogger.
    I’ve joined your rss feed and look ahead to seeking extra of
    your wonderful post. Additionally, I have shared your website in my social networks

  156. Howdy would you mind stating which blog platform you’re working
    with? I’m going to start my own blog in the near future but I’m having
    a difficult time choosing between BlogEngine/Wordpress/B2evolution and
    Drupal. The reason I ask is because your layout seems different then most blogs and I’m looking for something completely
    unique. P.S Apologies for getting off-topic but I had
    to ask!

  157. You are so awesome! I do not think I’ve truly read
    through a single thing like that before. So great to discover another person with a few original thoughts on this
    subject matter. Really.. thanks for starting this up.

    This web site is something that’s needed on the web, someone with some originality!

  158. May I simply say what a relief to uncover someone that really
    knows what they are discussing on the web. You
    certainly know how to bring an issue to light and make it important.
    More and more people should read this and understand this side of the story.
    I was surprised you’re not more popular since you certainly possess
    the gift.

  159. Excellent items from you, man. I have bear in mind your stuff prior
    to and you are just extremely magnificent. I really like what you have obtained right here, really like what
    you are saying and the best way through which you are saying it.
    You’re making it enjoyable and you still take care of to stay it sensible.
    I can not wait to read much more from you.
    That is actually a wonderful website.

  160. Somebody necessarily help to make significantly articles I
    would state. That is the first time I frequented your website page and to this point?
    I surprised with the analysis you made to make this
    actual publish amazing. Magnificent activity!

  161. Hi there! I just wanted to ask if you ever have any trouble with hackers?
    My last blog (wordpress) was hacked and I ended up losing many months of hard work due
    to no backup. Do you have any methods to stop hackers?

  162. Wonderful beat ! I wish to apprentice even as you
    amend your website, how could i subscribe for a weblog web site?

    The account helped me a appropriate deal. I have been a little
    bit acquainted of this your broadcast offered shiny clear concept

  163. Its like you learn my mind! You seem to understand a lot approximately this, such
    as you wrote the ebook in it or something. I feel that you could do with some p.c.
    to drive the message home a little bit, however other than that, that is wonderful blog.
    An excellent read. I will definitely be back.

  164. Admiring the persistence you put into your site and in depth information you provide.
    It’s great to come across a blog every once in a while that isn’t the same out of date rehashed material.
    Excellent read! I’ve bookmarked your site and I’m including
    your RSS feeds to my Google account.

  165. Hello there! I know this is kinda off topic but I was wondering if you knew where I could get a captcha plugin for my comment
    form? I’m using the same blog platform as yours and I’m having trouble finding one?
    Thanks a lot!

  166. hello there and thank you for your info – I’ve certainly picked
    up anything new from right here. I did however expertise some technical points using this
    website, as I experienced to reload the website many times previous to I could
    get it to load properly. I had been wondering if your web host is
    OK? Not that I am complaining, but sluggish loading instances times will often affect
    your placement in google and could damage your quality score if advertising and marketing
    with Adwords. Well I’m adding this RSS to my email and can look
    out for much more of your respective interesting content.
    Make sure you update this again soon.

  167. This design is spectacular! You most certainly know how to keep a
    reader entertained. Between your wit and your videos,
    I was almost moved to start my own blog (well, almost…HaHa!) Excellent
    job. I really loved what you had to say, and more than that,
    how you presented it. Too cool!

  168. You made some decent points there. I looked on the web for more information about the issue
    and found most people will go along with your views on this website.

  169. I think that is one of the so much important information for
    me. And i’m happy studying your article. However should remark on some general issues, The website
    style is wonderful, the articles is actually great :
    D. Just right activity, cheers

  170. Unquestionably believe that which you stated. Your favorite
    reason appeared to be on the internet the simplest thing to be aware of.
    I say to you, I definitely get irked while
    people consider worries that they plainly don’t know
    about. You managed to hit the nail upon the top
    as well as defined out the whole thing without having side
    effect , people could take a signal. Will probably be back to get more.
    Thanks

  171. I like the helpful info you provide in your articles. I will
    bookmark your blog and check again here regularly. I am quite certain I
    will learn a lot of new stuff right here! Best
    of luck for the next!

  172. Very good blog! Do you have any recommendations for aspiring writers?
    I’m planning to start my own website soon but I’m a little lost on everything.
    Would you advise starting with a free platform like WordPress or go for a paid option? There are so
    many choices out there that I’m totally confused ..

    Any tips? Cheers!

  173. I am extremely impressed with your writing abilities as neatly as with
    the layout in your blog. Is that this a paid topic or did you modify it yourself?
    Anyway keep up the excellent quality writing,
    it’s rare to peer a great blog like this one today..

  174. Thank you for some other informative website.
    The place else could I am getting that kind of information written in such an ideal approach?
    I’ve a mission that I’m just now working on, and I’ve been on the glance out for such information.

  175. I really like your blog.. very nice colors & theme. Did you
    create this website yourself or did you hire someone to do it for you?
    Plz respond as I’m looking to design my own blog and would
    like to know where u got this from. kudos

  176. An outstanding share! I have just forwarded this onto a coworker who was doing a little research on this.
    And he actually bought me lunch because I discovered it for
    him… lol. So let me reword this…. Thanks for the meal!!

    But yeah, thanx for spending some time to talk
    about this subject here on your site.

  177. I am really impressed with your writing skills and also with
    the layout on your weblog. Is this a paid theme or did you modify
    it yourself? Anyway keep up the excellent quality writing, it’s rare to
    see a nice blog like this one today.

  178. Hi would you mind letting me know which hosting company you’re utilizing?
    I’ve loaded your blog in 3 completely different web browsers and I must
    say this blog loads a lot quicker then most. Can you suggest
    a good hosting provider at a fair price? Thank you, I appreciate it!

  179. I’m not sure where you are getting your information, but great topic.
    I needs to spend some time learning more or understanding
    more. Thanks for magnificent information I was looking for this information for my mission.

  180. I am now not certain where you’re getting your information, however great topic.

    I needs to spend a while finding out more or understanding more.
    Thanks for excellent info I used to be in search
    of this information for my mission.

  181. I am not sure where you are getting your info, but great topic.
    I needs to spend some time learning much more or understanding more.
    Thanks for great information I was looking for this info for my mission.

  182. Today, I went to the beachfront with my children.
    I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell to her ear
    and screamed. There was a hermit crab inside and it pinched her ear.
    She never wants to go back! LoL I know this is totally off topic but I
    had to tell someone!

  183. Hi, I think your site might be having browser compatibility issues. When I look at your website in Safari, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, fantastic blog!

  184. Thanks for your marvelous posting! I actually enjoyed reading it, you happen to be
    a great author.I will make sure to bookmark your blog and definitely will come back very soon. I want
    to encourage you to continue your great work, have a nice weekend!

  185. Howdy just wanted to give you a quick heads up.

    The words in your content seem to be running off the screen in Opera.
    I’m not sure if this is a formatting issue or something to do with web browser
    compatibility but I thought I’d post to let you know.

    The design and style look great though! Hope you get the
    problem fixed soon. Thanks

  186. Can I simply just say what a relief to discover a person that truly understands what they
    are discussing on the net. You actually understand how to bring a problem to
    light and make it important. More people have to read this and understand this side of your story.
    I was surprised you aren’t more popular because
    you surely possess the gift.

  187. Good day! I know this is somewhat off topic but I was wondering if you knew where I could get a captcha
    plugin for my comment form? I’m using the same blog platform
    as yours and I’m having problems finding one?
    Thanks a lot!

  188. Hey! I realize this is somewhat off-topic however I had to ask.
    Does building a well-established blog like yours require a massive amount work?

    I am completely new to running a blog but I do write in my journal
    everyday. I’d like to start a blog so I can share my own experience and thoughts online.
    Please let me know if you have any kind of recommendations
    or tips for brand new aspiring bloggers. Thankyou!

  189. I know this if off topic but I’m looking into starting my
    own weblog and was curious what all is needed to get set up?
    I’m assuming having a blog like yours would cost a pretty penny?
    I’m not very internet savvy so I’m not 100% positive.

    Any recommendations or advice would be greatly appreciated.
    Appreciate it

  190. Good post. I learn something new and challenging on sites I stumbleupon everyday.

    It’s always helpful to read through content from other authors and use a little something from other sites.

  191. You could definitely see your skills within the article you write.
    The world hopes for even more passionate writers like you
    who are not afraid to say how they believe. At all times go after your heart.

  192. Pretty section of content. I just stumbled upon your weblog and in accession capital to assert that I get
    in fact enjoyed account your blog posts. Anyway I’ll be subscribing to your feeds and even I achievement you access consistently fast.

  193. Greate article. Keep posting such kind of info on your page.
    Im really impressed by your site.
    Hello there, You have done an incredible job. I’ll definitely digg
    it and individually suggest to my friends. I’m sure they’ll be benefited
    from this website.

  194. Please let me know if you’re looking for a article writer for your
    weblog. You have some really great posts and I believe I
    would be a good asset. If you ever want to take some of the load off, I’d
    love to write some material for your blog in exchange for a link
    back to mine. Please blast me an email if
    interested. Cheers!

  195. Hi there just wanted to give you a quick heads up and let you know a few of the pictures aren’t loading correctly.
    I’m not sure why but I think its a linking issue. I’ve tried it in two
    different web browsers and both show the same results.

  196. Thanks for a marvelous posting! I quite enjoyed reading it, you are a
    great author. I will be sure to bookmark your blog and will come
    back down the road. I want to encourage continue your great posts, have a nice weekend!

  197. Thanks for the good writeup. It in truth was a leisure
    account it. Glance complex to far introduced agreeable from you!
    However, how can we keep up a correspondence?

  198. What’s Going down i’m new to this, I stumbled upon this I’ve discovered It absolutely useful and it
    has aided me out loads. I’m hoping to contribute &
    assist other users like its helped me. Good job.

  199. Thank you a bunch for sharing this with all of us you really recognize what you’re speaking about!
    Bookmarked. Kindly also visit my site =). We could have a link change contract among us

  200. Howdy I am so happy I found your site, I really found you by accident,
    while I was searching on Google for something else, Anyhow I am
    here now and would just like to say cheers for a incredible post and a all round exciting blog (I also
    love the theme/design), I don’t have time to look over it all at the moment
    but I have saved it and also added in your RSS feeds, so when I have time I will be back to read much more, Please do keep up the superb work.

  201. Tremendous things here. I am very happy to see your
    post. Thank you so much and I’m having a look ahead
    to contact you. Will you please drop me a mail?

  202. Hi there! I know this is kinda off topic however I’d figured I’d ask.
    Would you be interested in trading links or maybe guest writing a blog article or vice-versa?

    My website covers a lot of the same topics as yours and I
    think we could greatly benefit from each other. If you happen to be interested
    feel free to send me an email. I look forward to hearing
    from you! Great blog by the way!

  203. Hi, i read your blog from time to time and i own a similar one and i
    was just wondering if you get a lot of spam remarks? If so how do you prevent it,
    any plugin or anything you can suggest? I get so much lately it’s driving
    me mad so any help is very much appreciated.

  204. Greetings I am so happy I found your weblog, I really found you by mistake, while I was browsing on Aol for something
    else, Regardless I am here now and would just like to say kudos for a remarkable
    post and a all round enjoyable blog (I also love the theme/design), I
    don’t have time to read through it all at the moment but I have saved it and also added in your RSS
    feeds, so when I have time I will be back to read a great deal more, Please do
    keep up the excellent b.

  205. I don’t even know how I finished up here, however I assumed this publish was good.
    I do not recognize who you are however definitely you are going
    to a well-known blogger if you aren’t already. Cheers!

  206. I got this website from my friend who shared with me on the topic of this web site
    and at the moment this time I am browsing this site and
    reading very informative articles or reviews here.

  207. I enjoy what you guys tend to be up too. This kind of clever work and
    exposure! Keep up the terrific works guys I’ve you
    guys to my own blogroll.

  208. you are really a just right webmaster. The website loading pace
    is amazing. It sort of feels that you are doing any distinctive
    trick. In addition, The contents are masterpiece. you have
    performed a wonderful job on this subject!

  209. Thanks for every other great post. Where else could anyone get
    that kind of info in such an ideal approach of writing?
    I’ve a presentation next week, and I’m at the look for such information.

  210. Simply want to say your article is as astonishing.
    The clarity in your post is simply excellent and i could assume you
    are an expert on this subject. Well with your permission let
    me to grab your RSS feed to keep up to date with forthcoming post.

    Thanks a million and please carry on the rewarding work.

  211. Its like you read my mind! You appear to know
    a lot about this, like you wrote the book in it or something.
    I think that you can do with a few pics to drive the message
    home a little bit, but other than that, this is excellent blog.
    An excellent read. I will definitely be back.

  212. After going over a few of the blog posts on your web page,
    I truly appreciate your way of writing a blog.
    I saved it to my bookmark webpage list and will be checking back soon. Please
    visit my web site too and tell me what you think.

  213. You can certainly see your skills within the work you write.
    The world hopes for even more passionate writers such
    as you who aren’t afraid to mention how they believe.
    Always go after your heart.

  214. My partner and I stumbled over here by a different page and thought
    I may as well check things out. I like what I see so i am just following you.
    Look forward to going over your web page repeatedly.

  215. Aw, this was a very good post. Finding the time and actual effort to generate a good
    article… but what can I say… I procrastinate a whole lot and never manage to get nearly anything done.

  216. Having read this I believed it was really enlightening.
    I appreciate you spending some time and effort to put this article together.
    I once again find myself spending a significant amount of
    time both reading and posting comments. But so what, it was still worthwhile!

  217. First of all I want to say superb blog! I had a quick question in which
    I’d like to ask if you do not mind. I was interested to find out how you center yourself and clear your mind prior to writing.

    I have had a tough time clearing my mind in getting my
    thoughts out there. I do take pleasure in writing however
    it just seems like the first 10 to 15 minutes are usually wasted simply just trying to figure out how to begin. Any ideas or tips?
    Kudos!

  218. Its not my first time to visit this web site,
    i am visiting this web page dailly and get fastidious information from here all the time.

  219. Wow, superb blog layout! How long have you been blogging for?
    you made blogging look easy. The overall look of your site is wonderful, as well as the
    content!

  220. Howdy this is somewhat of off topic but I was wanting to know if blogs use WYSIWYG editors or if you
    have to manually code with HTML. I’m starting a blog soon but have no coding
    skills so I wanted to get guidance from someone with experience.
    Any help would be enormously appreciated!

  221. Pretty component of content. I just stumbled upon your website and in accession capital to assert that I get actually
    enjoyed account your weblog posts. Anyway I’ll be subscribing for your augment or even I fulfillment you get admission to constantly rapidly.