Apuntes: github.com
REPARAR MONGO
mongod --dbpath /data/db --repair
// Setting (configuraciones)
// selecciona el puerto que traiga el servidor o por defecto seleciona 3000
app.set('port', process.env.PORT || 3000)
// Archivos staticos
app.listen(app.get('port'), ()=> {
console.log ("Ejecutandose en el puerto ", app.get('port'))
})
MOTOR DE PLANTILLA
const path = require('path')
// Setting (configuraciones)
app.set('views', path.join(__dirname, 'views')) //'views´es nuestra CARPETA de VISTAS
app.set('view engine', 'ejs')
MONGOSE
const mongoose = require('mongoose')
// express-pagination es el nombre de mi Base de Datos
mongoose.Promise = global.Promise (Para usar las promesas
mongoose.connect('mongodb://localhost/express-pagination')
.then(()=> console.log('La BASE DE DATOS esta conectada'))
.catch(err => console.log(err))
//mongoose.connect('mongodb://localhost/express-pagination', { useMongoClient: true) VERSION ANTERIOR
BODYPARSER
(Para entender la informacion en formato JSON y la informacion de los formularios)
const bodyParser = require('body-parser')
// midddleware
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: false}))
____________________
Se crea un archivo INDEX.JS en la carpeta ROUTES
const router = require('express').Router()
// Rutas
//router.get('/', (req,res)=> res.send('Hola Mundo')) Muestra un mensaje
module.exports = router
--------------------
RUTAS (routes)
const indexRoutes = require('./routes/index')
// Rutas del servidor
app.use(indexRoutes)
Video 2 de 4
--------------------
Se crea un archivo PRODUCT.JS en la carpeta MODELS
comandos de mongo
+ Inf. de MOngo
--------------------
--------------------
Se crea un archivo PRODUCT.JS en la carpeta MODELS
const mongoose = require('mongoose')--------------------
const Schema = mongoose.Schema()
const ProductSchema = new Schema({
category: String,
name : String,
price : Number,
cover : String
})
module.exports = mongoose.model('Product', ProductSchema)
comandos de mongo
+ Inf. de MOngo
show databases (Mostrar las Bases de datos)
use express-pagination (nombre de mi b.d.)
use express-pagination (nombre de mi b.d.)
show collections (muestra las colecciones)
db.product.count() cuenta los registros de la colleccion product
db.products.find().pretty() muestra los productos
db.products.find({category:"Hortalizas"}).pretty()
db.products.find({category:"Hortalizas"}).pretty()
--------------------
*routes/Index.js
router.post('/add-product', (req, res, next) => {
console.log(req.body)
//res.send('Ruta POST recibida')
const product = new Product()
product.category = req.body.category_name
product.name = req.body.product_name
product.price = req.body.product_price
product.cover = faker.image.image()
product.save(err => {
if (err) { throw err }
res.redirect('/add-product') }) });
GENERAR PRODUCTOS ALEATORIOS
router.get('/generar-datos-faker', (req, res, next) => {
//res.send('Aqui se genera datos con FAKER')
for(let i=0; i < 90; i++){
const product = new Product()
product.category = faker.commerce.department()
product.name = faker.commerce.productName()
product.price = faker.commerce.price()
product.cover = faker.image.image()
product.save(err => {
if (err) { return next(err) }
})
//console.log(product)
}
res.redirect('/add-product')
});
MOSTRAR PRODUCTOS POR PAGINAS
router.get('/products/:page', (req, res, next) => {
let perPage = 9;
let page = req.params.page || 1;
Product
.find({}) // finding all documents
.skip((perPage * page) - perPage) // in the first page the value of the skip is 0
.limit(perPage) // output just 9 items
.exec((err, products) => {
Product.count((err, count) => { // count to calculate the number of pages
if (err) return next(err);
//console.log(products) res.render('products/products', {
products,
current: page,
pages: Math.ceil(count / perPage)
}); // fin res.render
}); // fin Product.count
}); // fin exec
});
No hay comentarios.:
Publicar un comentario