MEAN Stack
Ömer Yiğit Aker

MEAN Stack Nedir?
MEAN Stack; MongoDb, ExpressJs, AngularJs ve NodeJs kullanılan full-stack proje geliştirmek için gerekli toollardır.
Neden MEAN Stack?
Herşey Javascript
Kullanılanlar
GitHub
Bir versiyon kontrol sisteminden çok daha fazlası.
Ne işe yarar:
- Kod Güvenliği
- Düzenli Geliştirme
- Ortak Yönetim
- Community Desteği


Repo'dan Görüntü

Mongo DB
Verileri JSON(JavaScript Object Notation) olarak tutan NoSQL(not only SQL) bir veritabanı.
- Klasik table yapısından kurtulun
- Collections

db.users.insert({
name: 'Omer',
age: 16,
isDead: false
})
// Json Data Formatı
// Basit bir insertdb.users.find()
// Bütün kullanıcıları getirNodeJs
Back-end taraflı kod geliştirilmesini sağlayan bir Javscript şeysi.
- Kendine özgü pm
- Bol kaynak

var http = require('http');
var server = http.createServer(function(request,response){
response.writeHead(200,{'Content-type':'text/html'});
response.end('<h1>Trabzon Hackerspace');
});
server.listen(3000);
// En basit http serverAngularJs
AngularJS, google'nin desteklediği, javascript MVC kütüphanesidir. MVC (Modal View Controller) verinin, görünümün ve kontrollerin ayrı tutulmasına dayanır.
- HTML’i geliştirmenin en kolay yolu: directive’ler.
- Google güveni ve hızlı büyüyen topluluk.
- Çift yönlü değişiklik dinleme.
- Çok eğlenceli, çok karizmatik.
'Murat Çorlu'

ExpressJs
Express, Nodejs ile hızlı ve düzenli proje gerçekleştirebilmemizi sağlayan web framework’üdür. Kurulumu da oldukça basit.
Yüklemek için:

npm install express --saveNginx
Nginx, Igor Sysoev tarafından yazılan bir http, reserve ve mail proxy sunucudur. Güncel bir istatistiğe göre Nginx sunucusu bugün, dünya genelinde yayında olan web sitelerinin %15'inde kullanılmakta ve pazar konumunu büyütmektedir.
Test yazdım mı ?
Evet :)
Unit Tests
var supertest = require('supertest');
var should = require('should');
var server = supertest.agent('http://localhost:9091');
describe('Main Page Unit Test',function () {
it('Ana sayfa düzgün dönmeli',function (done) {
server
.get('/')
.expect('Content-type',/text/)
.expect(200)
.end(function (err,res) {
res.status.should.equal(200);
done();
});
});
});
describe('Articles Page Unit Test',function () {
it('Makaleler düzgün dönmeli',function (done) {
server
.get('/articles')
.expect('Content-type',/text/)
.expect(200)
.end(function (err,res) {
res.status.should.equal(200);
done();
});
});
});
describe('Login Page Unit Test',function () {
it('Giriş sayfasına dönmeli',function (done) {
server
.get('/login')
.expect('Content-type',/text/)
.expect(200)
.end(function (err,res) {
res.status.should.equal(200);
done();
});
});
});
describe('Signup Page Unit Test',function () {
it('Kayıt sayfasına dönmeli',function (done) {
server
.get('/signup')
.expect('Content-type',/text/)
.expect(200)
.end(function (err,res) {
res.status.should.equal(200);
done();
});
});
});
describe('API Unit Test(Status 200)',function () {
it('Düzgün cevap gelmeli',function (done) {
server
.get('/api/all')
.expect('Content-type',/text/)
.expect(200)
.end(function (err,res) {
res.status.should.equal(200);
done();
});
});
});
describe('API Unit Test(Status 404)',function () {
it('Bulunamadı hatası gelmeli',function (done) {
server
.get('/api/login')
.expect('Content-type',/text/)
.expect(404)
.end(function (err,res) {
res.status.should.equal(404);
done();
});
});
});
describe('API Unit Test(Status 500)',function () {
it('Düzgün cevap gelmeli',function (done) {
server
.post('/api/login')
.expect('Content-type',/text/)
.expect(500)
.end(function (err,res) {
res.status.should.equal(500);
done();
});
});
});Jenkins CI
Jenkins bir “sürekli entegrasyon sunucusu”dur.
Yazdığınız kodu test eder (yazdığınız testleri çalıştırır), inşa eder sunucularınıza otomatik olarak yükler.
- Çok rahat

DEMO
Detaylar için...
mean
By Ömer Yiğit Aker
mean
- 497