Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 29.04.2015, 09:30
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Erolast
глобал ж в ноде не принято использовать
Потихоньку выпиливаю, когда начинал 3 месяца назад, было не до тонкостей.

Если маленький проект подключаем так?

let app = express();

app.use(require("./get/info"));
app.use(require("./get/props"));

app.listen(3000);


Где:

./get/info

let app = express();

app.get('/get/info/', funcHandler);



А если большой?

let app = express();

app.use(require("./get/init"));

app.listen(3000);


Где:
./get/init

require('./info');
require('./props');
...

Где ./get/info
app.get('/get/info/', funcHandler);


Так?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #12 (permalink)  
Старый 29.04.2015, 11:06
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

А в ноде не без разницы let или var? Вроде же и так по модулям распихано.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #13 (permalink)  
Старый 29.04.2015, 11:11
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Gozar Посмотреть сообщение
А в ноде не без разницы let или var? Вроде же и так по модулям распихано.
var депрекейтед в ES6 А так без разницы.
__________________
kobezzza
code monkey
Ответить с цитированием
  #14 (permalink)  
Старый 29.04.2015, 11:59
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Сообщение от Gozar Посмотреть сообщение
А в ноде не без разницы let или var? Вроде же и так по модулям распихано.
Так Babel же)
Ответить с цитированием
  #15 (permalink)  
Старый 29.04.2015, 12:19
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Safort
Так Babel же)
Я не использую Babel на сервере. Хватает стандартного api+npm.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #16 (permalink)  
Старый 29.04.2015, 15:05
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
А в ноде не без разницы let или var? Вроде же и так по модулям распихано.
Во внешнем-то скопе разницы нету, но не объявлять же в разных стилях.

Цитата:
А если большой?
Я сейчас выделяю роутеры в отдельную папочку по сущностям (у меня, правда, ES6-модули, но не суть):
let app = express();

app.use("/", require("./routers/main"));
app.use("/api", require("./routers/api"));

app.listen(3000);

//routers/main.js
let express = require("express");
let router = express.Router();

router.use("/*", (req, res) => {
  res.render("main");
});

module.exports = router;

//routers/api.js
let express = require("express");
let httpStatuses = require("statuses");

let Article = require("../models/Article");

let router = express.Router();

router.route("/articles")
    .get((req, res, err) => {
        Article.find().then(
            (articles) => res.json(articles),
            (err) => next(err)
        );
    })
    .post((req, res, err) => {
        let article = new Article();
        
        article.save().then((article) => {
            res.status(httpStatuses.Created);
            res.location(req.protocol +
                "://" +
                req.hostname +
                (config.get("port") != 80 ? ":" + config.get("port") : "") +
                req.originalUrl +
                article.id
            );
            
            res.json(article);
        }, (err) => next(err));
    });

module.exports = router;


Когда роутер разрастается - он просто заменяется на папочку и разбивается на несколько мелких (именно поэтому я не указываю расширение при импорте).
Ответить с цитированием
  #17 (permalink)  
Старый 29.04.2015, 17:58
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Я немного по другому делю:
/get //-> читаем с сервера (в папке есть файл init в который подключаем файлы)
/set //-> пишем на сервер (в папке есть файл init в который подключаем файлы)

Т.к. я в основном использую тип JSON, то деление на get и post становиться немного неудобным, а то ещё присрется put ввести, хотя похоже мне он будет без надобности.

Мне было неясно зачем нужен let router = express.Router();. Теперь вижу, внутри ты делишь на get и post, если такого деление нет, то он без надобности и можно сразу писать app.get или app.post
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #18 (permalink)  
Старый 29.04.2015, 19:37
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Т.к. я в основном использую тип JSON, то деление на get и post становиться немного неудобным, а то ещё присрется put ввести, хотя похоже мне он будет без надобности.
Нихрена не понял. При чем тут JSON и в чем проблема ввести put?

Цитата:
внутри ты делишь на get и post
Это необязательно деление по методам, это может быть и деление по путям.
Ответить с цитированием
  #19 (permalink)  
Старый 29.04.2015, 21:23
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Erolast
Нихрена не понял
Я тебя ни в чем не убеждаю. Просто поделился архитектурным решением.

Ты написал роутер, внутри get, post. А я делю на get и set. Абстрагируюсь от типа(set: post, put, delete).

Сообщение от Erolast
чем проблема ввести put?
Да ни в чем. Просто он не нужен.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #20 (permalink)  
Старый 30.04.2015, 08:08
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Я тебя ни в чем не убеждаю. Просто поделился архитектурным решением.
А. Ну я тоже ни в чем не убеждаю, просто поделился своим)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка при вызове из консоли глобального модуля express в node.js в windows 8.1 jazznet AJAX и COMET 1 16.06.2015 10:30
Создать отдельное express app для роута AnZuev Node.JS 2 19.04.2015 14:57