Цитата:
import Base from './base'; import { GET, controller } from './core/controller'; @controller(exports) export default class Guest extends Base { /** * Returns true if the the specified room is free */ [GET`is-room-free`](o, model) { o.auth('Staff').push(async (ctx) => { if (!ctx.user.hasPermissions(['AdminAccess'])) { o.addGuard(ctx, {hotel: 'hotels'}); } ctx.body = {result: await model.isRoomFree(ctx.reqData)}; }); } } |
kobezzza, спасибо
|
kobezzza,
я решил немного по извращатся и сделать так import Controller from "../../lib/decorators/Controller"; import RequestMapping from "../../lib/decorators/RequestMapping"; @Controller("/") export default class { @RequestMapping("/test") async getTestPage() { } @RequestMapping(["/home","/"]) async getMainPage() { } } |
Вот это заява. Совсем народ обнаглел.
|
Цитата:
|
Цитата:
|
kobezzza, cyber,
вот зачем вы декораторы используете? Они же уже поменялись, были даже предложения поменять их синтаксис. Т.е. эта штука опасная, не даром она в babel-плагинах как легаси числится. |
Цитата:
|
Safort, я использую в своем проекте, на работе жду когда будет готова спецификация)
В моем проекте я так себе добавил много фич, если поменяют то буду менять, но пока мне нравится) |
Цитата:
|
trikadin, я не особо доверяю штукам типа дарт, кофе, туйпскрипт... поэтому только vanilla js ))
|
Цитата:
|
Цитата:
|
cyber,
Так "чистый js" щас второй раз почти умер. Первый раз умирал es3 to es5 когда-то, щас es5 конвульсирует в пользу es6+. Ну то есть я серьезного продакшн-реди ничо на тайпскрипте не писал, но у меня сложилось ощущение, что он от современного js отличается не больше чем современный js от es5. Поправьте меня если я неправ)) И вроде бы ts позиционируется не как язык который будет уходить в сторону от js стандартов, а как язык который будет бежать впереди и прорубать путь. А вот кофе доверять уже поздно имхо, он обрел популярность за счет того что связан с рельсами и js стагнировал. Сейчас js не стагнирует, рельсы сходят на нет. У кофе нет будущего имхо. Про дарт ничо не скажу, не ковырял) |
Цитата:
Цитата:
|
Какие вы используете nosql базы для ноды и какие orm для них?
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
destus, сорян, пропустил))
|
Цитата:
Внизу страницы ссылка на драйверы для node, php .... |
Цитата:
2. Что скажете об Arangodb? По описсание комбайн + перфоманс лучше, чем у ... (по инфе с офф. сайта) http://stackoverflow.com/a/24392094 |
Советую не верить бенчам, т.к. в большинстве случаев там читерство, например на бенчах ориента монго в режиме журналирование, а ориент без и разумеется ориент шустрее выходит) по факту главным критерием субд является скалируемость, а остальное уже от задач (например есть задачи где частое чтение, и редкая запись и наоборот, то там могут быть хороши совершенное разные решения).
|
Цитата:
|
Цитата:
|
|
Цитата:
Вместе с тем мне нужно выбрать ДБ, которая бы отвечала определенным требованиям, среди которых: 1. отказоустройчивость 2. масштабируемость (без джойнов) 3. сравнительно легкая "эмуляция" отношений (one-to-many etc.) 4. транзакции 5. document, key-value, graph БД 6. ... |
Вопрос по запросам в Mongoose / MongoDB:
Требуется выбрать все Issue пользователя, которые: - или были созданы пользователем (issue.authorId === user.id) - или были назначены на пользователя (issue.assigneeId === user.id) - или те, в которых пользователь оставлял комментарии (notes.notableId.contains(issue.id)) Есть три схемы (ниже они упрощены) // Issue const schema = new mongoose.Schema( { id: Number, authorId: Number, assigneeId: Number } ); schema.virtual('notes', { ref: 'Note', localField: 'id', foreignField: 'noteableId' }); // Note const schema = new mongoose.Schema( { id: Number, noteableId: Number, authorId: Number } ); // User const schema = new mongoose.Schema( { id: Number } ); И два запроса let id = 21; // user.id пользователь let $in = yield Note.find({authorId:id}).distinct('noteableId'); // все id комментариев пользователя this.response.body = yield Issue.find({ $or: [ {authorId:id}, {assigneeId:id}, {id:{$in}} ] }); Можно ли это сделать в 1 запрос? Спасибо. |
Что-то закреплённых тем в оффтопике дофига. Не сразу свою новую тему нашёл. Придётся прибегнуть к пиару чёрному: http://javascript.ru/forum/offtopic/...rrektnost.html
|
Цитата:
|
kobezzza, ты знаешь о фреймворке spring из java?
Как думаешь что то похожее на nodejs имеет смысел? примерно так это выглядит в данный момент, я эксперементирую import {Controller} from "../../lib/decorators/index"; import {RequestMapping} from "../../lib/decorators/index"; import {RequestMethod} from "../../lib/decorators/index"; @Controller("/") export default class { @RequestMapping("/test") async getTestPage(ctx) { console.log(ctx.mongodb); return Promise.resolve("hello test"); } } работает это чудо с koa P.s убрал с темы Tim и перенес сюда) |
cyber, про спринг знаю, что это такой фреймворк-фреймворков, но я в общем не явист. В твоём варианте мне главным образом не нравится, что придётся придумывать имена для post, delete и т.д. запросов )
nerv_, если коллекции разные, то тока в 2-ва запроса, но не вижу ничего плохого в этом, кроме разве что неудобства, но это плата за коробочный шардинг. |
kobezzza,
это будет примерно так import {Controller} from "../../lib/decorators/index"; import {RequestMapping} from "../../lib/decorators/index"; import {RequestMethod} from "../../lib/decorators/index"; @Controller("/") export default class { @RequestMapping({ value: "/test", method: RequestMethod.POST} ) async getTestPagePost(ctx) { console.log(ctx.mongodb); return Promise.resolve("hello test"); } @RequestMapping({ value: "/test", method: RequestMethod.GET} ) async getTestPagePost(ctx) { console.log(ctx.mongodb); return Promise.resolve("hello test"); } } |
cyber, многословно, да и IDE же будет ругаться, что в классе 2 метода с именем getTestPagePost
|
kobezzza, окей, а как лучше? как ты думаешь?
|
Цитата:
@controller() class myController { // В качестве имени я юзаю путь [GET`foo/`]() { } [POST`foo/`]() { } } Довольно удобно. |
Если на фейсбуке открыть консоль, то можно лицезреть красивое сообщение:
Цитата:
|
|
cyber,
да, это цвет фон и тд. а как сделать чтобы не отображало номер строки скрипта |
Хотите знать, что заставило меня сегодня улыбаться с утра? :)
Пришло на почту письмо, в котором бла-бла-бла, доступен новый поиск по npm пакетам на сайте https://npms.io Любопытсва ради я зашел туда посмотреть, потыкал и нашел свой загрузчик файлов для ангуляра 1. После чего мне стало любопытно взглянуть на загрузчики файлов для ангуляра 2 и я наткнулся на это. Оказывается, ребята взяли и портировали мой аплоадер для второго ангуляра. Как говорится, найдите 10 отличий: 1. https://github.com/nervgh/angular-fi...0/src/services (мой) 2. https://github.com/valor-software/ng...ts/file-upload (чужой) Вот такая забавная история :) P.S.: в моем аплоадере есть ряд ошибок проектирования. Не буду им говорить, расстраивать :D |
Часовой пояс GMT +3, время: 16:07. |