Недавно я читал о CouchDB, и он мне ОЧЕНЬ нравится. Это кажется таким простым, но гибким, и я ЛЮБЛЮ интерфейс RESTful. Но давайте посмотрим правде в глаза — если вы не создаете SAP, вам нужно, чтобы ваше приложение обслуживало статический HTML с оптимизированными для SEO URL-адресами, а не постоянными HTTP-запросами. На самом деле я еще не использовал CouchDB ни в одном проекте, но очень хочу изучить его в ближайшем будущем.
Вопрос в том, как я могу использовать его для создания статического HTML-сайта, например, блога? Я хотел бы хранить все свои сообщения в блоге в CouchDB, а затем отображать их в формате HTML на основе категорий, тегов и даты. Если я правильно понимаю, я бы просто определил набор показов в своих проектных документах. Так, например, в дизайн-документе для всех сообщений в категории "Работа" я бы также добавил отдельную функцию для шаблона show. Однако у меня есть небольшая проблема с сохранением моего HTML внутри функции JavaScript внутри файла JSON! Это звучит супер-болезненно для поддержания. Я быстро просмотрел CouchApp, и, похоже, он решает эту проблему, но, похоже, он не находится в активной разработке, поэтому у меня вопрос о других возможных решениях.
Я хочу иметь возможность структурировать свой HTML/CSS/JS, как обычно, но использовать преимущества CouchDB, если это возможно, без какого-либо внешнего бэкенда. Или, что еще лучше, я бы ХОЧУ определить мои базы данных как файлы JSON, мои функции map как обычные файлы .js
и поддерживать классическую структуру каталогов для всего остального, например :
db/data
— содержит CouchDB
db/maps
- здесь хранятся мои функции карты
public/
— содержит все остальное, включая JS, CSS и HTML, например:
public/css
public/js
public/categories.html
public/posts.html
public/index.html
и Т. Д.
Любые мысли о том, как я могу достичь этого? Или если это вообще возможно?
Дополнительный вопрос: не мог бы кто-нибудь объяснить, что такое функции reduce? Являются ли они SQL-эквивалентом функций sum
и count
? Когда бы я на самом деле использовал функцию сокращения? И когда мне нужно будет написать собственный?
Спасибо!