Professional Documents
Culture Documents
MVC(CARS)........................................................................................................................................1
MVC(CARS)
CLIENT
1. Створюємо модель Car:
export class Car {
id: number = 0
name: string
model: string
price: number
image: string = ""
constructor(name: string, model: string, price: number) {
this.name = name
this.model = model
this.price = price
}
}
@Injectable({
providedIn: 'root'
})
export class CarService {
private url = 'http://localhost:3000/api/cars';
constructor(
private http: HttpClient,
private router: Router
) { }
getCars(): Observable<Car[]>{
return this.http.get(this.url) as Observable<Car[]>;
}
getCar(id: number): Observable<Car>{
return this.http.get(`${this.url}/${id}`) as Observable<Car>;
}
deleteCar(id: number): Observable<any>{
return this.http.delete(`${this.url}/${id}`);
createCar(newCar: Car): Observable<any>{
return this.http.post(this.url, newCar);
udateCar(id: number) {
// ... PUT
}
SERVER
3. Index.js
const express = require('express')
const app = express();
app.get('/', (req, res) => {
res.status(200).json({
message: 'hello from server'
})
});
app.listen(5000, () => console.log('Server has been started'));
4. app.js
const express = require('express')
const app = express()
module.exports = app;
5. index.js
const app = require('./app')
app.get('/', function (req, res) {
// res.send('Hello World')
res.status(200).json({
message: 'hello from server'
})
})
app.listen(3000, () => {
console.log('Server has been started');
})
6. routes/car.js
const express = require('express');
const router = express.Router();
router.get('/', function (req, res) {
// res.send('Hello World')
res.status(200).json({
message: 'get all cars'
})
})
module.exports = router;
7. app.js
const express = require('express')
const carRoutes = require('./routes/car')
const app = express()
app.use('/api/cars', carRoutes);
module.exports = app;
8. controllers/car.js
module.exports.getAllCars = (req, res) => {
res.status(200).json([
{id: '1', name: 'ford', 'model': 'focus', price: 1000},
{id: '2', name: 'bmw', 'model': 'X6', price: 5000}
])
}
9. Встановлюєм пакети:
10. app.js
app.use(require('morgan')('dev'));
app.use(require('cors')());
module.exports.getById = (req, res) => {
res.status(200).json("one car")
}
module.exports.remove = (req, res) => {
res.status(200).json("remove car")
}
module.exports.create = (req, res) => {
res.status(200).json("create car")
}
module.exports.update = (req, res) => {
res.status(200).json("update car")
}
router.get('/', controller.getAllCars)
router.get('/:id', controller.getById)
router.post('/', jsonParser, controller.create)
router.put('/:id', controller.update)
router.delete('/:id', controller.remove)
module.exports = router;
models/Car.js
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/carsdb')
.then(() => { console.log('MongoDB connected')})
.catch((error) => {console.log(error)});
...
module.exports = app;
15. Знаходимо дані з БД
Controllers/car.js
const Car = require('../models/Car')
const car = new Car({name: carName, model: carModel, price: carPrice, image:
carImage});
car.save(function(err){
if(err) return console.log(err);
res.send(car);
});