[program:you_program_name]
command=/opt/bin/you_program
numprocs=1
autostart=true
autorestart=true
startsecs=10
startretries=5
exitcodes=0,2
stopsignal=TERM
stopwaitsecs=10
upstream app1 {
server 127.0.0.1:3003; # порт, который слушает приложения
}
server {
listen 80;
# черновики для разных серверов, раcкомментить нужный по необходимости
# home box
#set $apppath /home/hogart/projects/app1;
#server_name app1.local;
# beta
#set $apppath /home/hogart/app1;
#server_name app1.kitmanov.name;
# production
#set $apppath /home/hogart/app1;
#server_name app1.info;
root $apppath;
# раздача статики
location ~ /style|js|img/ {
root $apppath/public/;
gzip on;
gzip_static on;
gzip_types text/css application/x-javascript;
gzip_proxied no-store no-cache private expired auth;
}
location / {
proxy_pass http://app1; # из upstream (см. выше)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; # удалить, если приложению не нужен реальный IP юзера
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # удалить, если приложению не нужен реальный IP юзера
proxy_cache_bypass $http_upgrade;
}
}
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)?
Ведь это всего лишь среда выполнения js.
Мне не понятно, это разделение фреймворков на группы, что они делают и для каких задач предназначены фреймворки из первой группы и из второй?
Почему они так разделены?
Используют ли их вместе, или только один?
Какие задачи решают фреймворки из первой и второй группы?
Для какое задачи достаточно будет знать только ангуляр, а для какой только рельсы?
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
class ValidLogin(object):
def process_request(request):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('signin'))
return None
MIDDLEWARE_CLASSES = (
'project.middleware.ValidLogin',
)
from django.conf.urls import patterns, url
from django.contrib.auth.decorators import user_passes_test
urlpatterns = patterns('crm.views',
url(r'^$',
user_passes_test(lambda u: u.is_superuser or u.is_moderator)(HomeCRM.as_view()),
name='home'),
)
from django.contrib.auth.decorators import login_required
urlpatterns = patterns('crm.views',
url(r'^$',
login_required(HomeCRM.as_view()),
name='home'),
)
но интересуют безрамочные интерфейсы, а-ля: Telegram desktop, Radiant Player и т.д.