Angular 10 HttpClient – PostgreSQL – Node.js/Express Sequelize CRUD APIs – Post/Get/Put/Delete

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 10 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 10 HttpClient – Get/Post/Put/Delete requests + Bootstrap 4

Technologies

  • Angular 10
  • 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 10 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 10 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

2,823 thoughts on “Angular 10 HttpClient – PostgreSQL – Node.js/Express Sequelize CRUD APIs – Post/Get/Put/Delete”

  1. Hi 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 browsers and both show the same outcome.

  2. You actually make it seem really easy with your presentation however I find this matter to be actually something that I feel I might never understand. It kind of feels too complicated and very vast for me. I am taking a look forward on your subsequent post, I’ll attempt to get the grasp of it!

  3. It’s really a great and helpful piece of information. I’m glad that you simply shared this useful information with us. Please keep us up to date like this. Thank you for sharing.

  4. 683711 248114I just could not go away your web site prior to suggesting that I truly enjoyed the regular info an individual supply to your visitors? Is gonna be once more continuously in order to look at new posts 383930

  5. Whats up very nice blog!! Man .. Beautiful ..
    Superb .. I will bookmark your site and take the feeds additionally?

    I am glad to search out a lot of helpful info right here within the
    put up, we’d like develop more strategies on this regard, thanks for sharing.
    . . . . .

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

  7. I have actually actually appreciated checking back for
    brand-new web content on your website weekly. I can not wait to see exactly
    how it remains to establish. I would certainly be interested to see exactly
    how you would certainly produce a web site in the music space.
    Your web content is superior already, as well
    as I think it would equate well to various other niches and
    also industries.

  8. When I initially left a comment I appear to have clicked the -Notify me when new comments are added- checkbox
    and from now on every time a comment is added I receive four emails with the same comment.

    There has to be an easy method you are able to remove
    me from that service? Thanks!

  9. Hmm it looks like your website ate my first
    comment (it was super long) so I guess I’ll just sum it up
    what I submitted and say, I’m thoroughly enjoying your blog.

    I as well am an aspiring blog blogger but I’m still
    new to the whole thing. Do you have any tips for
    beginner blog writers? I’d certainly appreciate it.

  10. Wow, awesome blog layout! How long have you been blogging for?
    you made blogging look easy. The overall look of your web site is fantastic, as well as the content!

  11. 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 bookmarking and checking back often!

  12. Does your website have a contact page? I’m having problems 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 site and I look forward to seeing it
    expand over time.

  13. Greate post. Keep posting such kind of information on your
    site. Im really impressed by your site.
    Hey there, You’ve performed a fantastic job. I will certainly digg it and
    individually recommend to my friends. I’m sure they will be
    benefited from this site.

  14. Simply want to say your article is as surprising.
    The clearness in your post is just excellent and i can assume you are an expert on this subject.
    Fine with your permission let me to grab your RSS feed to keep up to date with forthcoming post.
    Thanks a million and please continue the enjoyable work.

  15. Howdy excellent blog! Does running a blog such as this take a great deal of work?
    I’ve virtually no expertise in coding however I had been hoping to
    start my own blog soon. Anyway, should you have any
    ideas or tips for new blog owners please share.

    I know this is off subject nevertheless I simply needed to ask.
    Cheers!

  16. I know this if off topic but I’m looking into starting my own weblog and was curious what all is required to get setup?
    I’m assuming having a blog like yours would cost a pretty penny?
    I’m not very internet savvy so I’m not 100% sure. Any tips
    or advice would be greatly appreciated. Kudos

  17. I do agree with all the concepts you have introduced on your
    post. They’re really convincing and will certainly work.
    Nonetheless, the posts are too brief for beginners. May you please prolong them a bit
    from subsequent time? Thank you for the post.

  18. Howdy! I could have sworn I’ve been to this site before but after browsing through some of the post
    I realized it’s new to me. Anyways, I’m definitely glad I found
    it and I’ll be bookmarking and checking back often!

  19. First off 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 curious to find out how you center yourself and clear your thoughts before writing.
    I’ve had a tough time clearing my mind in getting my thoughts out.

    I do take pleasure in writing but it just seems
    like the first 10 to 15 minutes tend to be lost simply just trying to
    figure out how to begin. Any suggestions or hints?
    Thank you!

  20. I know this if off topic but I’m looking into starting my own weblog and was wondering what all is required to get set up?
    I’m assuming having a blog like yours would cost a pretty penny?
    I’m not very internet smart so I’m not 100%
    sure. Any recommendations or advice would be greatly appreciated.
    Kudos

  21. Howdy! This post couldn’t be written any better!
    Reading this post reminds me of my good old room mate!
    He always kept talking about this. I will forward this page to him.

    Fairly certain he will have a good read. Thank you for sharing!

  22. Woah! I’m really loving the template/theme of this website.
    It’s simple, yet effective. A lot of times it’s hard to get that “perfect balance” between usability and visual appeal.
    I must say you have done a superb job with this. Additionally, the blog loads very quick
    for me on Chrome. Excellent Blog!

  23. Please let me know if you’re looking for a article author for your blog.
    You have some really good articles and I think I would be a
    good asset. If you ever want to take some of the load off,
    I’d absolutely love to write some articles for your blog in exchange for a
    link back to mine. Please send me an email if interested.
    Kudos!

  24. Hey I am so glad I found your weblog, I really found you by accident, while I was searching on Bing for something
    else, Anyhow I am here now and would just like
    to say many thanks for a fantastic post and a all round enjoyable blog (I also love the theme/design), I don’t have time to read it all
    at the minute but I have book-marked it and also added your RSS feeds, so when I have time I will be
    back to read much more, Please do keep up the awesome b.

  25. Great items from you, man. I have take into account your stuff previous to and you’re just
    extremely excellent. I actually like what you’ve got right here, really like what you are stating and the
    way wherein you assert it. You’re making it entertaining and you
    continue to take care of to keep it wise.
    I can’t wait to read much more from you. That is actually a great web
    site.

  26. Attractive section of content. I just stumbled upon your site
    and in accession capital to assert that I acquire in fact enjoyed account your blog
    posts. Anyway I will be subscribing to your feeds and even I achievement you access consistently
    fast.

  27. We are a group of volunteers and starting a brand new scheme in our community.
    Your web site offered us with useful information to work on.
    You have performed a formidable activity and our whole community can be grateful to you.

  28. Everything typed was actually very logical.
    However, consider this, suppose you added a little
    information? I mean, I don’t wish to tell you how to run your blog, but suppose you added a title to maybe get people’s attention? I mean ozenero |
    Mobile & Web Programming Tutorials is a little vanilla.
    You ought to look at Yahoo’s home page and see how they create post headlines to grab viewers
    interested. You might add a video or a related picture or two to get people interested
    about everything’ve written. Just my opinion, it would make your website a little bit more
    interesting.

  29. My brother suggested I might like this web site. He used to be
    totally right. This put up truly made my day. You can not imagine just how a lot time I had spent for
    this information! Thank you!

  30. Nice blog right here! Additionally your web site quite a bit up fast!
    What web host are you the use of? Can I am getting your affiliate link in your host?

    I want my website loaded up as fast as yours lol

  31. Hey there! This is my first comment here so I
    just wanted to give a quick shout out and say I truly enjoy reading
    your articles. Can you suggest any other blogs/websites/forums that go over the same topics?
    Thank you so much!

  32. I’ve actually enjoyed examining back for new content on your web site weekly.
    I can’t wait to see exactly how it remains to establish.
    I would certainly be interested to see exactly how you would certainly generate a website in the songs
    area. Your material is top-notch currently,
    and also I think it would certainly equate well to various other particular niches and sectors.

  33. I have actually really appreciated checking back for brand-new
    web content on your internet site weekly.
    I can’t wait to see just how it continues to
    create. I ‘d be interested to see exactly how you would certainly create a
    site in the songs space. Your web content is excellent already, and I believe it would certainly translate
    well to other niches and industries.

  34. Excellent post. I was checking continuously this blog and I am impressed!
    Extremely helpful info specially the last part 🙂 I care for such info much.

    I was looking for this particular information for a very long time.
    Thank you and good luck.

  35. I have actually truly taken pleasure in checking back for new
    content on your site weekly. I can’t wait to see exactly how it continues to establish.
    I would certainly be interested to see exactly how you ‘d create a
    web site in the songs room. Your material is excellent
    already, as well as I believe it would certainly translate well to other
    specific niches and also markets.

  36. Just desire to say your article is as astounding.
    The clarity in your post is just great 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 keep up the gratifying work.

  37. Do you mind if I quote a couple of your posts as long as I provide credit and sources back to your blog?
    My blog site is in the exact same niche as yours and my
    visitors would truly benefit from a lot of the information you present here.
    Please let me know if this alright with you. Appreciate it!

  38. Howdy! I could have sworn I’ve been to this site
    before but after browsing through some of the post I realized it’s new to me.
    Anyhow, I’m definitely glad I found it and I’ll be bookmarking and checking
    back often!

  39. hello there and thank you for your information – I have definitely picked up anything new from right here.
    I did however expertise a few technical points using this site, since I experienced to reload
    the 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 sluggish loading instances times
    will very frequently affect your placement in google and could damage your quality score if ads and marketing with Adwords.
    Anyway I am adding this RSS to my e-mail and could look out for much more of your respective exciting content.
    Ensure that you update this again soon.

  40. I delight in, result in I discovered exactly what I
    used to be having a look for. You’ve ended my four day long hunt!
    God Bless you man. Have a nice day. Bye

  41. Helpful info. Fortunate me I discovered your web
    site unintentionally, and I am shocked why this twist of fate did not took place in advance!

    I bookmarked it.

  42. Do you mind if I quote a couple of your posts as long as I provide credit
    and sources back to your website? My blog site is
    in the exact same niche as yours and my users would
    really benefit from a lot of the information you provide here.

    Please let me know if this ok with you. Regards!

  43. Great blog right here! Additionally your web site rather a lot up fast!
    What host are you the usage of? Can I get your associate hyperlink to your host?
    I want my website loaded up as quickly as yours lol

  44. I’m extremely inspired together with your writing skills and also with the
    structure to your blog. Is that this a paid subject matter
    or did you modify it yourself? Anyway keep up the
    excellent quality writing, it is rare to peer a nice
    blog like this one today..

  45. I have actually truly enjoyed examining back for
    brand-new content on your internet site weekly. I can not wait to see how it continues to establish.
    I would certainly be interested to see how you would certainly generate a web site in the
    songs room. Your content is first-class currently, and also I think it would certainly equate well to
    various other particular niches and also sectors.

  46. Very great post. I just stumbled upon your blog and wished to mention that
    I’ve really enjoyed surfing around your weblog posts. In any case I’ll be subscribing for your rss feed and I’m hoping you write once more
    very soon!

  47. Howdy! This post could not be written any better! Reading
    through this post reminds me of my good old room mate!
    He always kept talking about this. I will forward this write-up to him.
    Pretty sure he will have a good read. Thanks for sharing!

  48. Write more, thats all I have to say. Literally, it
    seems as though you relied on the video to make your point.

    You clearly know what youre talking about, why throw away your intelligence on just posting videos to
    your blog when you could be giving us something
    enlightening to read?

  49. I was recommended this web site through my cousin. I am
    now not certain whether or not this publish is written by him as no one
    else recognise such designated about my trouble. You’re wonderful!

    Thank you!

  50. I’ve actually enjoyed checking back for brand-new material on your website weekly.

    I can’t wait to see just how it remains to establish.

    I ‘d be interested to see how you would certainly produce a web site in the
    songs space. Your content is superior currently,
    and also I assume it would certainly translate well to various
    other particular niches and also industries.

  51. I’ve really taken pleasure in examining back for brand-new
    web content on your website weekly. I can not wait to see how it continues to create.

    I ‘d be interested to see just how you would certainly produce a internet site in the songs area.
    Your content is top-notch already, and I think it would certainly equate well to various other
    specific niches as well as industries.

  52. Every weekend i used to pay a quick visit this site, because
    i want enjoyment, for the reason that this this website conations truly nice funny material too.

  53. Ahaa, its good dialogue on the topic of this article at this place at this web site, I
    have read all that, so at this time me also commenting here.

  54. Excellent beat ! I would like to apprentice while you amend your site, how could i subscribe for a
    blog web site? The account helped me a acceptable deal. I
    had been tiny bit acquainted of this your broadcast provided bright clear idea

  55. 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.

  56. What’s Going down i am new to this, I stumbled upon this I have found It absolutely helpful and
    it has helped me out loads. I’m hoping to give a contribution &
    aid different users like its helped me. Good job.

  57. I have actually truly enjoyed checking back for
    new material on your site weekly. I can’t wait to see exactly how it continues to
    create. I would certainly be interested to
    see just how you ‘d produce a site in the music area.
    Your web content is excellent already, and also I believe it would equate well
    to various other particular niches and sectors.

  58. Hey! This is my first visit to your blog! We are
    a collection of volunteers and starting a new initiative in a community in the same niche.
    Your blog provided us valuable information to work on. You have done a extraordinary job!

  59. You actually make it seem so easy with your presentation but I find this topic to be really something which I think I would
    never understand. It seems too complex and extremely broad for me.
    I am looking forward for your next post, I will try to get the hang of it!

  60. Wonderful website you have here but I was wondering if you knew of
    any discussion boards that cover the same topics
    talked about here? I’d really like to be a part of community where I can get responses from other knowledgeable individuals that share the
    same interest. If you have any suggestions, please let me know.
    Many thanks!

  61. I know this if off topic but I’m looking into starting my own blog and was wondering 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 smart so I’m not 100% sure.
    Any tips or advice would be greatly appreciated.

    Cheers

  62. I’ve actually delighted in inspecting back for new web
    content on your web site weekly. I can not wait to see how it continues
    to establish. I ‘d be interested to see exactly how you ‘d produce a internet site in the songs space.

    Your web content is excellent already, and I
    assume it would certainly convert well to other
    specific niches and also markets.

  63. I’ve been exploring for a little bit for any high-quality articles
    or blog posts on this sort of house . Exploring in Yahoo I ultimately stumbled upon this site.
    Reading this info So i’m glad to show that I have an incredibly just right uncanny feeling I came upon exactly what I needed.
    I so much unquestionably will make certain to don?t overlook this web site
    and give it a glance on a relentless basis.

  64. hey there and thank you for your information – I have certainly picked up anything new from right here.
    I did however expertise a few technical points
    using this site, as I experienced to reload the site a lot of
    times previous to I could get it to load correctly.
    I had been wondering if your hosting is OK? Not that I’m
    complaining, but sluggish loading instances times will sometimes
    affect your placement in google and could damage your high-quality score if advertising and marketing
    with Adwords. Well I’m adding this RSS to my email and could look out for much more of
    your respective interesting content. Make sure you update
    this again soon.

  65. It’s appropriate time to make some plans for the longer term and
    it’s time to be happy. I have learn this publish and if I could I desire to counsel you few attention-grabbing things or suggestions.
    Maybe you can write subsequent articles relating to this article.
    I wish to read even more things about it!

  66. Oh my goodness! Impressive article dude! Many thanks, However
    I am going through problems with your RSS. I
    don’t know why I can’t subscribe to it. Is there anybody else
    having similar RSS issues? Anyone who knows the solution can you kindly respond?
    Thanks!!

  67. fantastic put up, very informative. I wonder why the other experts of this sector
    do not notice this. You must proceed your writing. I’m sure, you’ve a huge readers’ base already!

  68. Asking questions are really fastidious thing if you are not understanding something completely, but this piece of writing provides pleasant understanding even.

  69. I have actually truly enjoyed inspecting back for
    brand-new content on your website weekly. I can’t wait to see how it remains to
    develop. I would certainly be interested to see
    exactly how you ‘d produce a site in the songs
    room. Your content is first-class currently, as well as
    I assume it would certainly convert well to other particular
    niches and markets.

  70. you’re actually a just right webmaster. The site loading speed is incredible.
    It kind of feels that you’re doing any distinctive trick.
    Furthermore, The contents are masterpiece.
    you have done a fantastic task in this matter!

  71. Greetings! Very helpful advice within this post! It is
    the little changes that will make the most significant changes.
    Thanks a lot for sharing!

  72. It’s a shame you don’t have a donate button! I’d most certainly
    donate to this brilliant blog! I guess for now i’ll settle
    for book-marking and adding your RSS feed to my Google account.

    I look forward to brand new updates and will share this website with my Facebook group.
    Chat soon!

  73. Thank you for the good writeup. It in fact was a amusement account it.

    Look advanced to more added agreeable from
    you! By the way, how could we communicate?

  74. I have actually truly taken pleasure in checking back for new web content on your site weekly.
    I can’t wait to see exactly how it remains to establish.
    I would certainly be interested to see how you ‘d create a web site
    in the music area. Your material is superior already, as well as I assume it would
    certainly equate well to other specific niches as well as sectors.

  75. It’s really a cool and helpful piece of information. I am satisfied
    that you simply shared this helpful information with us.
    Please stay us up to date like this. Thanks for sharing.

  76. I’m amazed, I must say. Rarely do I come across a blog that’s both educative
    and engaging, and let me tell you, you have hit the nail on the head.
    The problem is something that not enough folks
    are speaking intelligently about. I’m very happy I stumbled across this during my hunt for something regarding this.

  77. This is the right blog for anybody who really wants to understand
    this topic. You realize so much its almost hard to argue with you
    (not that I really would want to…HaHa). You definitely put a brand new spin on a topic that has
    been written about for decades. Great stuff,
    just excellent!

  78. Hello there! This post could not be written any
    better! Going through this article reminds me of my previous roommate!
    He always kept preaching about this. I most certainly will
    send this article to him. Pretty sure he’s going to have
    a very good read. Thanks for sharing!

  79. Hi! I just wanted to ask if you ever have any trouble with hackers?
    My last blog (wordpress) was hacked and I ended up losing
    months of hard work due to no data backup.
    Do you have any solutions to protect against hackers?

  80. Howdy, I think your site could possibly be having internet browser
    compatibility issues. Whenever I take a look
    at your web site in Safari, it looks fine however when opening in Internet Explorer,
    it’s got some overlapping issues. I simply wanted to give you a quick
    heads up! Besides that, fantastic site!

  81. Have you ever thought about including a little bit more than just your
    articles? I mean, what you say is valuable and everything.
    But imagine if you added some great pictures or
    videos to give your posts more, “pop”! Your
    content is excellent but with images and videos, this blog could undeniably be one of the very best in its
    field. Good blog!

  82. Normally I don’t learn post on blogs, however I wish to say that this write-up very pressured me to
    take a look at and do it! Your writing style has been amazed
    me. Thanks, very great article.

  83. You actually make it seem so easy with your presentation but I find this topic to be actually something which I think
    I would never understand. It seems too complex and very broad for me.
    I’m looking forward for your next post, I’ll try to get the hang of
    it!

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

  85. Fantastic beat ! I would like to apprentice while you amend your site, how can i
    subscribe for a weblog web site? The account helped me a appropriate deal.
    I have been a little bit familiar of this your broadcast offered bright transparent idea

  86. I’m impressed, I must say. Rarely do I encounter a blog that’s both educative and entertaining,
    and let me tell you, you have hit the nail on the head. The
    issue is something which not enough men and women are speaking
    intelligently about. I’m very happy that I found this during my hunt for something relating to this.

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

  88. First of all I want to say great blog! I had a quick question in which
    I’d like to ask if you do not mind. I was curious to know how
    you center yourself and clear your mind before writing.

    I have had trouble clearing my thoughts in getting my thoughts out there.
    I do enjoy writing however it just seems like the first 10 to 15
    minutes are lost just trying to figure out how to begin. Any recommendations or hints?
    Appreciate it!

  89. fantastic put up, very informative. I’m wondering why the
    opposite experts of this sector don’t realize this. You must continue your writing.
    I am sure, you’ve a great readers’ base already!

  90. Hi there, I discovered your website by the use of Google at the same time as
    looking for a comparable matter, your website came up, it appears
    good. I have bookmarked it in my google bookmarks.
    Hello there, just became alert to your weblog via Google, and found that it’s truly informative.

    I’m going to be careful for brussels. I will be grateful when you proceed this in future.

    Numerous other people will be benefited from your writing.
    Cheers!

  91. Hello, There’s no doubt that your web site could possibly be having browser compatibility issues.
    When I look at your blog in Safari, it looks fine however,
    if opening in IE, it’s got some overlapping issues.
    I merely wanted to provide you with a quick heads up! Aside from that, excellent blog!

  92. We’re a gaggle of volunteers and starting a new scheme in our community.
    Your web site offered us with valuable information to work on. You’ve performed
    a formidable job and our entire neighborhood will probably be grateful to you.

  93. Hi, i think that i saw you visited my weblog
    so i came to “return the favor”.I’m attempting to find things to enhance my site!I suppose its ok to
    use a few of your ideas!!

  94. Hmm is anyone else having problems with the images on this blog loading?

    I’m trying to determine if its a problem on my end or
    if it’s the blog. Any responses would be greatly appreciated.

  95. It’s a pity you don’t have a donate button! I’d most certainly
    donate to this superb blog! I guess for now i’ll settle for book-marking and adding your RSS feed to
    my Google account. I look forward to brand new updates and will share this website with my Facebook group.
    Chat soon!

  96. I have been exploring for a little bit for any high-quality
    articles or weblog posts on this sort of space . Exploring in Yahoo I ultimately stumbled upon this website.
    Reading this information So i’m satisfied to express that I’ve an incredibly good
    uncanny feeling I discovered just what I needed. I such a lot certainly
    will make sure to do not omit this website and provides it a look regularly.

  97. I’m really enjoying the theme/design of your blog.
    Do you ever run into any internet browser compatibility issues?
    A number of my blog audience have complained about my site
    not working correctly in Explorer but looks great in Opera.
    Do you have any tips to help fix this issue?

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

  99. This design is spectacular! You most certainly 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!) Wonderful job.

    I really enjoyed what you had to say, and more than that,
    how you presented it. Too cool!

  100. I have been exploring for a little bit for any high-quality articles or weblog posts on this sort
    of space . Exploring in Yahoo I at last stumbled upon this site.
    Reading this info So i’m glad to convey that I have an incredibly good uncanny feeling I discovered exactly what I needed.
    I so much without a doubt will make certain to
    do not put out of your mind this site and give it a look regularly.

  101. I was wondering if you ever considered changing the page layout
    of your blog? 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 1 or 2 images. Maybe you could space it out better?

  102. Fantastic items from you, man. I’ve remember your stuff previous to and you’re simply too excellent.
    I really like what you’ve acquired right here, really like what you are stating and the way wherein you
    assert it. You make it enjoyable and you still care for to keep it smart.
    I can’t wait to read far more from you. This is actually a wonderful site.

  103. Thank you for the good writeup. It in fact was a amusement
    account it. Look advanced to more added agreeable from you!
    By the way, how can we communicate?

  104. great post, very informative. I’m wondering why the opposite experts of this sector do not notice
    this. You should proceed your writing. I’m confident, you
    have a huge readers’ base already!

  105. I don’t know whether it’s just me or if everyone else encountering issues with your
    blog. It looks like some of the written text
    in your content are running off the screen. Can somebody else please
    provide feedback and let me know if this is happening to them too?

    This could be a problem with my browser because I’ve had
    this happen previously. Thanks

  106. Thanks for your marvelous posting! I actually enjoyed reading
    it, you may be a great author.I will make certain to bookmark
    your blog and may come back at some point. I want to encourage
    continue your great work, have a nice holiday weekend!

  107. Howdy! I understand this is somewhat off-topic but I needed to ask.
    Does operating a well-established blog such as yours take a lot of work?
    I’m completely new to writing a blog however I do write in my journal every day.

    I’d like to start a blog so I will be able to share my
    own experience and feelings online. Please let me know
    if you have any recommendations or tips for new aspiring bloggers.
    Appreciate it!

  108. Magnificent goods from you, man. I’ve understand your stuff previous to and you are just extremely magnificent.

    I actually like what you have acquired here, really like what you are stating and
    the way in which you say it. You make it enjoyable and you still care for to keep it smart.
    I can’t wait to read far more from you. This is really a great site.

  109. Unquestionably imagine that that you stated. Your favorite justification seemed to be at the net the easiest factor to take
    note of. I say to you, I definitely get annoyed even as other folks think about worries
    that they plainly don’t recognise about. You managed to hit the nail
    upon the top and also defined out the entire thing with no need side-effects ,
    folks could take a signal. Will likely be back to get more.
    Thank you

  110. Hello there I am so happy I found your web 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 thank you for a incredible
    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 book-marked it and also added your RSS feeds, so
    when I have time I will be back to read a great deal more, Please do keep
    up the excellent work.

  111. Hi there very nice web site!! Man .. Beautiful .. Superb ..
    I will bookmark your web site and take the feeds additionally?

    I’m happy to seek out a lot of helpful information here in the submit, we’d like develop more techniques
    in this regard, thank you for sharing. .
    . . . .

  112. I have been browsing on-line greater than 3 hours these
    days, yet I never discovered any fascinating article like
    yours. It’s beautiful worth sufficient for me. In my opinion, if all site owners and bloggers made
    excellent content as you did, the web can be much more helpful than ever before.

  113. Just wish to say your article is as amazing. The clearness in your post is just excellent and i can assume you
    are an expert on this subject. Fine with your permission allow me to grab your RSS feed to keep up
    to date with forthcoming post. Thanks a million and please continue the rewarding work.

  114. Hey there! 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 results.
    If you know of any please share. Many thanks!

  115. We are a group of volunteers and opening a new scheme in our community.
    Your website provided us with valuable information to work on. You have done a formidable
    job and our entire community will be grateful
    to you.

  116. I just could not go away your site prior to suggesting that I extremely enjoyed the usual info a person provide in your visitors?
    Is going to be back continuously in order to check out new posts

  117. I’m really loving the theme/design of your blog. Do you
    ever run into any internet browser compatibility issues?

    A couple of my blog visitors have complained about my website not operating correctly
    in Explorer but looks great in Safari. Do you have any suggestions to
    help fix this issue?

  118. Can I just say what a comfort to uncover somebody who really knows what they’re discussing on the
    web. You certainly understand how to bring an issue
    to light and make it important. A lot more people must check this out and understand this side
    of the story. I was surprised you’re not more popular
    because you certainly have the gift.

  119. First of all I want to say great blog! I had a quick question in which
    I’d like to ask if you do not mind. I was curious to find out how you
    center yourself and clear your thoughts prior to writing.
    I’ve had a tough time clearing my mind in getting my
    ideas out. I truly do take pleasure in writing but it just seems like the first 10 to 15 minutes are generally lost just
    trying to figure out how to begin. Any suggestions or tips?
    Many thanks!

  120. Normally I don’t learn post on blogs, however I would like to say
    that this write-up very compelled me to try and do so!
    Your writing style has been amazed me. Thanks, quite great article.

  121. Hello outstanding website! Does running a blog like this require a lot of
    work? I’ve absolutely no expertise in programming but I was hoping to start my own blog in the near future.
    Anyhow, should you have any recommendations or tips
    for new blog owners please share. I know this is off subject but I just wanted to ask.
    Kudos!

  122. Write more, thats all I have to say. Literally, it seems as though you relied on the video to make your point.
    You clearly know what youre talking about, why throw away your
    intelligence on just posting videos to your blog when you could be
    giving us something informative to read?

  123. Unquestionably believe that which you said. Your favorite reason seemed to be on the internet the easiest thing to be
    aware of. I say to you, I definitely get annoyed while people
    think about worries that they just don’t 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

  124. Excellent post. I was checking continuously this blog and I
    am impressed! Very helpful information particularly the last part 🙂 I care for such info much.
    I was seeking this particular information for a long time.
    Thank you and best of luck.

  125. Write more, thats all I have to say. Literally, it seems as though you relied
    on the video to make your point. You obviously know what youre talking about, why throw away your
    intelligence on just posting videos to your
    site when you could be giving us something informative to read?

  126. Do you mind if I quote a couple of your articles as long as I provide
    credit and sources back to your webpage? My blog is in the
    exact same niche as yours and my users would genuinely benefit from
    some of the information you provide here. Please let me know
    if this ok with you. Cheers!

  127. Howdy! Do you know if they make any plugins to safeguard against hackers?
    I’m kinda paranoid about losing everything I’ve worked hard on. Any tips?

  128. I know this if off topic but I’m looking into starting
    my own blog 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

  129. It’s very simple to find out any topic on web as compared to textbooks, as
    I found this paragraph at this web page.

  130. Hello there, I believe your web site may be having web browser compatibility problems.
    When I look at your blog in Safari, it looks fine however,
    if opening in I.E., it has some overlapping issues.
    I simply wanted to give you a quick heads up! Apart from that, excellent website!

  131. Wonderful blog! Do you have any tips for aspiring writers?

    I’m hoping 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 options
    out there that I’m completely confused .. Any suggestions? Cheers!

  132. My relatives every time say that I am killing my time here at web, except I know I
    am getting know-how every day by reading thes pleasant articles.

  133. Have you ever considered about including a little bit more than just your articles?
    I mean, what you say is important and everything. However think of if you added some great pictures or videos to give your posts
    more, “pop”! Your content is excellent but with images
    and video clips, this site could certainly be one of the best in its niche.

    Great blog!

  134. I’d like to thank you for the efforts you have put
    in writing this site. I really hope to see the same high-grade blog
    posts by you later on as well. In fact, your creative
    writing abilities has encouraged me to get my very own website
    now 😉

  135. Hey would you mind sharing which blog platform you’re using?
    I’m planning to start my own blog in the near future but I’m having
    a hard time choosing 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 completely unique. P.S Sorry for being off-topic
    but I had to ask!

  136. It’s awesome to go to see this site and reading the views of all colleagues on the topic of
    this article, while I am also keen of getting know-how.

  137. It’s amazing to pay a quick visit this web page and reading the views
    of all colleagues concerning this piece of writing, while I am
    also zealous of getting experience.

  138. Hello I am so thrilled I found your website, I really found
    you by accident, while I was looking on Google for something else, Regardless I am here now and would
    just like to say cheers for a marvelous post and a all round enjoyable blog (I also love the theme/design),
    I don’t have time to look over it all at the moment
    but I have book-marked 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 great work.

  139. Hey! This is kind of off topic but I need some help from an established
    blog. Is it difficult to set up your own blog? I’m not very techincal but I can figure things out pretty quick.
    I’m thinking about setting up my own but I’m not sure where to start.
    Do you have any points or suggestions? Many thanks

  140. It is perfect time to make some plans for the longer term
    and it is time to be happy. I’ve learn this post and if I could I
    desire to suggest you few interesting things or tips.
    Perhaps you could write next articles referring to this article.

    I desire to read even more things about it!

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

  142. Howdy, 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 feedback? If so how do you stop it, any plugin or anything you
    can suggest? I get so much lately it’s driving
    me mad so any support is very much appreciated.

  143. With havin so much written content do you ever run into
    any issues of plagorism or copyright violation? My blog has a
    lot of exclusive content I’ve either created myself or
    outsourced but it seems a lot of it is popping it up all
    over the web without my authorization. Do you know any techniques
    to help reduce content from being ripped off? I’d definitely appreciate it.

  144. Hello i am kavin, its my first occasion to commenting anywhere, when i read
    this paragraph i thought i could also create comment due to this brilliant paragraph.

  145. Hi there, this weekend is fastidious in favor of me, as this point in time i am
    reading this impressive educational paragraph
    here at my residence.

  146. Excellent post. I used to be checking continuously this blog and
    I’m inspired! Very useful information particularly
    the remaining phase 🙂 I handle such info a lot. I used to be seeking this particular info for a
    long time. Thanks and best of luck.

  147. Hello there! This blog post could not be written any better!
    Looking at this post reminds me of my previous roommate! He
    always kept talking about this. I’ll forward this article to
    him. Fairly certain he will have a good read. I appreciate you for sharing!

  148. I every time used to read post in news papers but now as I am a
    user of internet thus from now I am using net for content,
    thanks to web.

  149. My brother recommended I may like this blog.

    He was totally right. This publish truly made
    my day. You cann’t imagine simply how so much time I had spent for this info!
    Thank you!

  150. Definitely believe that which you said. Your favorite reason appeared to be on the net
    the simplest thing to be aware of. I say to you, I definitely get irked while people consider worries that they just 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 can take a signal.
    Will probably be back to get more. Thanks

  151. Pretty nice post. I just stumbled upon your blog and wished
    to say that I have truly loved browsing your blog posts.
    After all I will be subscribing for your rss
    feed and I’m hoping you write again soon!

  152. When I originally commented I clicked the “Notify me when new comments are added”
    checkbox and now each time a comment is added I get four e-mails with the same
    comment. Is there any way you can remove people
    from that service? Appreciate it!

  153. I do not know if it’s just me or if everybody else experiencing problems with your
    blog. It appears like some of the text on your content are
    running off the screen. Can somebody else please comment and let me know
    if this is happening to them as well? This could be a problem with my internet browser because I’ve had this happen previously.
    Kudos

  154. Heya i am for the first time here. I found this board and I find It really useful & it
    helped me out much. I am hoping to provide one thing again and aid others
    like you helped me.

  155. Thanks , I’ve recently been searching for info approximately this subject for
    a long time and yours is the best I have came upon till now.
    However, what about the bottom line? Are you
    positive concerning the source?

  156. I think this is among the most significant information for me.
    And i’m glad reading your article. But wanna remark on few general things, The
    web site style is wonderful, the articles is really great : D.

    Good job, cheers

  157. Hi! I’ve been reading your blog for a long time now and finally got the bravery to go
    ahead and give you a shout out from Lubbock Tx! Just
    wanted to say keep up the excellent job!

  158. An impressive share! I have just forwarded this onto a coworker who has been doing a little homework on this.
    And he in fact ordered me dinner due to the fact that I stumbled upon it for him…

    lol. So allow me to reword this…. Thank YOU for the meal!!
    But yeah, thanks for spending the time to talk about this issue
    here on your website.

  159. Good day I am so glad I found your web site, I really found you by error, while I was looking on Digg for something else, Regardless I am here
    now and would just like to say many thanks for a remarkable post and a all round thrilling blog (I
    also love the theme/design), I don’t have time to browse 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 lot more, Please do keep up the great b.

  160. Hi, i read your blog from time to time and i own a similar one and i was just curious if you get a lot of spam feedback?

    If so how do you stop it, any plugin or anything you can recommend?
    I get so much lately it’s driving me insane so any help is very much appreciated.

  161. Hi, I believe your blog might be having browser compatibility problems.
    Whenever I take a look at your website in Safari, it looks fine
    but when opening in IE, it’s got some overlapping issues.
    I merely wanted to give you a quick heads up! Apart from that, great blog!

  162. Pretty section of content. I just stumbled upon your blog and in accession capital to
    assert that I acquire actually enjoyed account your
    blog posts. Any way I’ll be subscribing to your augment and
    even I achievement you access consistently quickly.

  163. Admiring the time and energy you put into your website and
    in depth information you provide. It’s awesome
    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 adding your RSS feeds to my Google account.

  164. I don’t know whether it’s just me or if everybody
    else experiencing problems with your website.
    It appears like some of the text within your posts
    are running off the screen. Can somebody else please comment and
    let me know if this is happening to them as well? This might be a issue with my browser because I’ve had this
    happen before. Kudos

  165. certainly like your web site but you need to take a look at the spelling on quite a few of your posts.
    Several of them are rife with spelling problems and I find it very
    troublesome to inform the reality then again I’ll definitely come back again.

  166. Nice 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 design. Many thanks

  167. Hello I am so delighted I found your blog, I really found
    you by error, while I was browsing on Askjeeve for something else,
    Anyways I am here now and would just like to say
    many thanks for a incredible post and a all round exciting blog (I also love the theme/design), I don’t have time to
    read through it all at the moment but I have book-marked it and
    also added your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep up the awesome jo.

  168. 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 entirely off topic but I had to tell someone!

  169. 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.

  170. Thank you for another informative blog. Where else may I am getting that kind of info written in such an ideal method?
    I have a challenge that I am simply now operating on,
    and I’ve been at the look out for such info.

  171. Howdy! This post couldn’t be written much better!
    Reading through this post reminds me of my previous roommate!
    He constantly kept preaching about this. I am going to forward this post to him.

    Fairly certain he’ll have a very good read. I appreciate you for sharing!

  172. Excellent post. Keep writing such kind of information on your page.

    Im really impressed by your site.
    Hi there, You’ve done a great job. I will definitely digg it and
    in my opinion suggest to my friends. I am sure they’ll be benefited from this web site.

  173. You really make it seem so easy along with your presentation however I to find this topic to
    be really something which I feel I’d never understand. It seems too complicated and very broad for me.

    I am taking a look forward in your next submit, I’ll try to get the grasp of it!

  174. Pretty part of content. I just stumbled upon your blog and in accession capital to assert that I acquire in fact
    loved account your weblog posts. Anyway I will be subscribing on your augment and even I success you get right of entry to consistently quickly.

  175. Superb website you have here but I was curious if you knew of any user discussion forums that cover the same topics discussed here?
    I’d really like to be a part of online community where I can get feed-back
    from other experienced individuals that share the same interest.
    If you have any suggestions, please let me know.
    Thanks!

  176. We are a gaggle of volunteers and starting a new
    scheme in our community. Your website provided
    us with valuable information to work on. You’ve done an impressive task and our entire community shall be grateful to you.

  177. excellent points altogether, you just received a logo new
    reader. What may you suggest in regards to your submit that
    you simply made a few days ago? Any sure?

  178. Write more, thats all I have to say. Literally, it seems as though you relied on the video to make your point.
    You obviously know what youre talking about,
    why waste your intelligence on just posting videos to your
    weblog when you could be giving us something
    enlightening to read?

  179. Its like you read my mind! You seem to know so
    much about this, like you wrote the book in it or
    something. I think that you can do with some pics to drive the message home a little bit, but instead of that, this is great
    blog. A great read. I will definitely be back.

  180. I don’t know if it’s just me or if perhaps everybody else encountering issues with your website.
    It seems like some of the text on your content are running off the screen. Can somebody else please comment and
    let me know if this is happening to them too?
    This may be a problem with my browser because I’ve had this happen previously.

    Thank you

  181. With havin so much content do you ever run into any problems of plagorism or copyright violation? My site
    has a lot of completely unique content I’ve either authored myself
    or outsourced but it seems a lot of it is popping it up all over the internet without my authorization. Do you know any ways to help stop content from being stolen? I’d truly appreciate it.

  182. No matter if some one searches for his required thing, so he/she needs to be available that in detail, so
    that thing is maintained over here.

  183. Wow, fantastic blog layout! How long have you been blogging for?
    you made blogging look easy. The overall look of your web site is wonderful, let alone the content!

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

  185. Your style is unique in comparison to other folks I have read stuff from.
    Thanks for posting when you have the opportunity, Guess I’ll just bookmark this site.

  186. I am really loving the theme/design of your web site.
    Do you ever run into any browser compatibility problems?
    A small number of my blog visitors have complained about my site not operating correctly
    in Explorer but looks great in Chrome. Do you have any tips to help fix
    this problem?

  187. Hello there, just became aware of your blog through Google,
    and found that it is really informative. I am going
    to watch out for brussels. I’ll be grateful if you continue
    this in future. A lot of people will be benefited from your writing.
    Cheers!

  188. Superb blog! Do you have any hints 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 completely overwhelmed ..
    Any suggestions? Cheers!

  189. Howdy 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 html coding expertise to make your own blog?
    Any help would be really appreciated!

  190. My brother suggested I may like this web site.
    He used to be totally right. This submit actually made my
    day. You cann’t imagine simply how a lot time I had spent for this info!
    Thank you!

  191. First of all I would like to say great blog! I had
    a quick question that I’d like to ask if you do not mind. I was curious to know
    how you center yourself and clear your thoughts
    prior to writing. I have had difficulty clearing my thoughts in getting my ideas out.
    I truly do take pleasure in writing but it just seems
    like the first 10 to 15 minutes are usually lost
    just trying to figure out how to begin. Any recommendations or hints?

    Cheers!

  192. Magnificent beat ! I wish to apprentice even as you amend your site,
    how could i subscribe for a weblog website?
    The account aided me a acceptable deal. I were a little bit acquainted of this
    your broadcast offered shiny clear concept

  193. You really make it seem so easy with your presentation but
    I find this matter to be really something which I think I would never understand.
    It seems too complicated and very broad for me. I’m looking forward for
    your next post, I’ll try to get the hang of it!

  194. Hi! I know this is somewhat off topic but I was wondering which blog platform are you using for this site?
    I’m getting fed up of WordPress because I’ve had issues with hackers
    and I’m looking at alternatives for another platform. I would be awesome if you could point me in the
    direction of a good platform.

  195. I know this if off topic but I’m looking into starting my own weblog and was curious what all is required to get set up?
    I’m assuming having a blog like yours would cost a pretty
    penny? I’m not very web savvy so I’m not 100% sure. Any recommendations or advice would be greatly appreciated.
    Thanks

  196. My programmer is trying to persuade 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 WordPress on a number of websites for about a year and am concerned about switching to another platform.

    I have heard good things about blogengine.net.
    Is there a way I can transfer all my wordpress posts
    into it? Any kind of help would be really appreciated!

  197. Excellent pieces. Keep posting such kind of information on your
    blog. Im really impressed by your blog.
    Hello there, You have performed an excellent job. I’ll definitely digg it and in my opinion suggest to my friends.
    I’m sure they will be benefited from this website.

  198. whoah this weblog is great i really like studying
    your posts. Keep up the good work! You recognize, lots of
    people are searching around for this information, you
    could help them greatly.

  199. Hello! Do you know if they make any plugins to safeguard against hackers?

    I’m kinda paranoid about losing everything I’ve worked
    hard on. Any suggestions?

  200. I was wondering if you ever considered changing the structure of your blog?
    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?

  201. Do you mind if I quote a few of your articles as long as
    I provide credit and sources back to your webpage? My blog is in the exact same niche as yours and my visitors would really
    benefit from a lot of the information you present here.
    Please let me know if this alright with you. Thanks a lot!

  202. Wonderful goods from you, man. I have bear in mind your stuff previous to and you’re just too magnificent.

    I actually like what you have got right here, really like what you are saying and
    the best way by which you say it. You make it enjoyable and you continue to care for to stay it smart.
    I can’t wait to learn much more from you. That is actually a terrific site.

  203. Hello! 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. Nonetheless, I’m
    definitely delighted I found it and I’ll be book-marking and checking back frequently!

  204. I really love your website.. Great colors & theme. Did you build this
    site yourself? Please reply back as I’m hoping
    to create my own blog and would like to learn where you
    got this from or just what the theme is called. Appreciate it!

  205. My partner and I stumbled over here coming from a different website and thought I may
    as well check things out. I like what I see
    so now i am following you. Look forward to looking at your web page for a second time.

  206. Hello I am so grateful I found your weblog, I really found you
    by accident, while I was researching on Aol for something else,
    Regardless I am here now and would just like
    to say cheers for a marvelous post and a all round enjoyable
    blog (I also love the theme/design), I don’t have time to read it all at the moment but I have saved it and also added your RSS feeds,
    so when I have time I will be back to read a great deal more,
    Please do keep up the superb b.

  207. Howdy! 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. Cheers

  208. Its like you read my mind! You appear to understand so much about this, such as you
    wrote the e-book in it or something. I believe that you can do with
    some % to force the message home a bit, but other than that,
    this is great blog. An excellent read. I’ll certainly be back.

  209. Hello to all, how is the whole thing, I think every one is getting more from this web page,
    and your views are nice designed for new viewers.

  210. After checking out a few of the blog articles on your website, I seriously like your technique
    of blogging. I bookmarked it to my bookmark site list and will be checking back soon. Please visit my web site too and tell me what you think.