NodeJs Makale Ekleme (MongoDb veri ekleme)

article modelim :
const mongoose = require('mongoose');
const { Schema } = mongoose;

const articleSchema = new Schema({
title: String,
subject: String,
body: String,
metaTag: String,
dateSent: Date,
_user: {type: Schema.Types.ObjectId, ref: 'members'}
})

mongoose.model('articles', articleSchema);

Buradaki Schema alanlarını dolurmamız gerekiyor. _user prop 'u makaleyi kimin eklediğini bulabilmek için. MongoDb deki members schemada ki id alaraka işlem yapıyor.

articleRoutes dosyamda işlemleri yapacağım.
const mongoose = require('mongoose');
const article = require('../models/article');
Mongose ve modelimde işlem yapacağım için öncelikle onları çağırıyorum.
article ekleyebilmem için bazı kurallarım vardı bunları çağırıyorum.
const requireLogin = require('../middlewares/requireLogin');
const requireAdmin = require('../middlewares/requireAdmin');
admin olmak ve giriş yapmış olmak gerekli.
post işlemi yapacağım :
app.post('/articles/new', requireLogin, requireAdmin, async(req, res) => {
const { title, subject, body, metaTag, dateSent } = req.body;
})
routerım şu şekilde ve middlewareslerimi kullanıyorum. Aynı zamanda requestimin bodysinden gelecek olan articleSchamam daki propetiesleri bodyden aldım.
Routerim şuanlık bitmiş hali;
const mongoose = require('mongoose');
const Article = require('../models/article');

//Midlewares
const requireLogin = require('../middlewares/requireLogin');
const requireAdmin = require('../middlewares/requireAdmin');

module.exports = (app) => {
app.post('/articles/new', requireLogin, requireAdmin, async(req, res) => {
const { title, subject, body, metaTag, dateSent } = req.body;

const article = new Article({
title,
subject,
body,
metaTag,
dateSent,
_user: req.user.id
})
try{
await article.save();
}
catch (err) {
res.status(422).send(err);
}
})

}
Şuan postman ile deneyebiliriz.

Postman ile denerken

POST seçilir ardından kullandığınız localhost portu ver router benim ki : localhost:5500/articles/new

Ardından Body kısmına  ben
{
"title":"deneme2",
"subject":"deneme2",
"body":"deneme2",
"metaTag":"deneme2"

}
 yazdım Login olmakla uğraşmamak için falan. Yukarıda bir hata yaptık aşağıda onun çözülmüş hali bulunuyor:
const mongoose = require('mongoose');
const Article = mongoose.model('articles');

//Midlewares
const requireLogin = require('../middlewares/requireLogin');
const requireAdmin = require('../middlewares/requireAdmin');
// requireLogin, requireAdmin,

module.exports = app => {
app.post('/articles/new', async(req, res) => {
const { title, subject, body, metaTag, } = req.body;
console.log("Save transtactions is begin");
const article = new Article({
title,
subject,
body,
metaTag,
dateSent: Date.now()
// _user: req.user.id
})
try{
await article.save();
console.log("Save transtactions is successfull");
}
catch (err) {
res.status(422).send(err);
console.log("is not successfull");
}
})

}

Middlewaresleri kaldırdım postman kulanacağım için.
Mongo Modelime veri eklemiş olduk. Sırada Front-end tarafına geçmek var

Yorumlar

Bu blogdaki popüler yayınlar

React JS Yazalım 1

Heroku deploy

Laravel & React 4