Основная информацияnode.js/express application - где я могу поместить логику подключения к базе данных?
Я только что создал свое первое экспресс-приложение. Я вижу, что он создал кучу файлов и структуру папок по умолчанию. Это то, что моя структура приложения в настоящее время выглядит следующим образом:
[email protected]:/var/www/html/nodejs_samples/tutorial1$ ls -lah
total 36K
drwxr-xr-x 7 me me 4.0K Sep 28 09:26 .
drwxrwxr-x 5 me me 4.0K Sep 28 08:45 ..
-rw-rw-r-- 1 me me 1.5K Sep 28 08:45 app.js
drwxr-xr-x 2 me me 4.0K Sep 28 09:20 bin
drwxrwxr-x 96 me me 4.0K Sep 28 09:26 node_modules
-rw-rw-r-- 1 me me 352 Sep 28 09:26 package.json
drwxr-xr-x 5 me me 4.0K Sep 28 08:45 public
drwxr-xr-x 2 me me 4.0K Sep 28 09:26 routes
drwxr-xr-x 2 me me 4.0K Sep 28 08:45 views
[email protected]:/var/www/html/nodejs_samples/tutorial1$
Гол
Я хочу, чтобы создать новый маршрут под названием «виджеты» и, когда метод GET вызывается, нужно вызвать базу данных Redis и выполнить запрос. URL-адрес, я хочу использовать для запуска Получить что-то вроде этого:
http://myserver/tutorial1/widgets/
или
http://myserver/tutorial1/widgets/12345
где 12345 является ключевым виджет, который я хочу, чтобы запросить.
Что я сделал до сих пор
Я нашел этот документ, который объясняет, как подключить/запрос к базе данных Redis: http://expressjs.com/en/guide/database-integration.html#redis
Я также скопировал маршруты/users.js, что экспресс генератор создал «бесплатно» для меня, чтобы маршрутизировать/widgets.js в качестве отправной точки.
Это то, что мои маршруты/widgets.js файл выглядит следующим образом:
[email protected]:/var/www/html/nodejs_samples/tutorial1$ cat routes/widgets.js
var express = require('express');
var router = express.Router();
/* GET widgets listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
Вопрос
Это мне не ясно, где я должен добавить логику подключения к базе данных и логики запроса. Я привык к MVC, где вы разбиваете всю логику базы данных на модель.
Можно ли разместить все в файле route/widgets.js?
В случае, если это поможет, вот ссылка на мой файл app.js: http://pastebin.com/hAe5mvwt. Я добавил 2 строки - строки 10 и 28.
Любые предложения или ссылки на хорошие учебники были бы оценены.
Вы * можете *, но тогда это связано непосредственно с обработчиком маршрута. Это нормально, чтобы начать так, но я предпочитаю более сильное разделение проблем. В конечном счете это сводится к мнению: нет никакого конкретного «правильного» способа разбить функциональность. –