var products = require(__dirname + '/controllers/products');
app.get('/product', products.index);
app.get('/product/add', products.add);
app.get('/product/edit', products.edit);
module.exports = {
index : function(req, res) {
res.render('products/index', {
'title' : 'Products list'
});
},
add : function(req, res) {
res.render('products/add', {
'title' : 'Add product'
});
},
edit : function(req, res) {
res.render('products/edit', {
'title' : 'Edit product'
});
}
}
sequelize = new Sequelize('mysql://root@localhost/nodejs');
product.findAll().then(function(prods) {
var products = [];
prods.forEach(function(prod) {
products.push(prod);
});
res.render('products/index', {
'title' : 'Products list',
'products' : products
});
});
1) Используют ли sequilize orm в nodejs? Много очень модулей, подскажите, чем пользуются?Кто-то пользуется, кто-то нет. Люди разные, проекты тоже разные. Я в одном проекте использую, в другом нет. В чем, собственно, вопрос?
Как в node.js правильно объявлять переменные глобально?
global.varName = 'hello world';
// dbConnect.js
'use strict';
const Sequelize = require('sequelize');
const settings = require('./settings');
const connection = new Sequelize(settings.db);
const modelNames = ['Order', 'User'];
for (const modelName of modelNames) {
connection.import(`./models/${modelName}.js`);
}
for (const modelName of Object.keys(connection.models)) {
if ('associate' in connection.models[modelName]) {
connection.models[modelName].associate(connection.models);
}
}
module.exports = connection;
// models/User.js
'use strict';
const generatePassword = require('password-generator');
module.exports = (sequelize, DataTypes) => {
let User;
const schema = {
username: {type: DataTypes.STRING, validate: {isEmail: true}},
password: DataTypes.STRING
};
const options = {
paranoid: true,
classMethods: {
authOrCreate (username, done) {
const query = {
where: {
username
},
defaults: {
password: generatePassword()
}
};
this.findOrCreate(query).spread((user, created) => {
if (created) {
done(null, user);
} else {
done(null, user);
}
}, (err) => {
done(err);
});
},
associate (models) {
User.hasMany(models.Order);
}
}
};
User = sequelize.define('User', schema, options);
return User;
};
// где-то в контроллере
const Orders = require('../../dbConnection').models.Orders;
Можно ли как-то автоматизировать (подобие __autoload() в PHP)?