2015-01-15 2 views
0

Я работаю на строительство социального приложения и давайте предположим, что приложение имеет следующие особенности: запросNodejs REST API и базы данных рекомендации

  1. корм Пользователь
  2. Друга, Connections.
  3. Любит
  4. Комментарии

Для того же, я строю REST API с помощью nodejs и мой опыт работы с nodejs ограничен. Я потратил много времени на исследования, и я нашел информацию в кусках. Я с нетерпением жду некоторых предложений от экспертов :)

  1. Я планирую использовать базу данных графиков NoSQL (Neo4j, OrientDB). Это хороший выбор. или их лучшие варианты, или я должен идти с реляционной базой данных, такой как mysql?
  2. Для операций с CRUD я думал о sailjs. (Я планировал использовать yoman, но пока нет никаких генераторов для Sails). Мысли/Рекомендации?

Благодарим за помощь.

+0

Могу ли я спросить, что вам нравится в использовании парусов? – dandavis

+0

Монгод, возможно, стоит посмотреть? http://www.mongodb.org/ – Magrangs

+0

@dandavis - подключиться к любой базе данных (я знаю, что они официально поддерживают локальный диск, redis, мой sql и несколько других). поддержка websockets и есть генератор аутентификации на основе паспорта для использования с парусами. :) –

ответ

0

Я большой поклонник стека MEAN. MongoDB для базы данных, ExpressJS как основа узла, AngularJS для внешнего интерфейса и NodeJS на сервере. С учетом сказанного, приложения, которые я построил, хорошо работают с структурой NoSQL MongoDB. Для социальной сети реляционная база данных может иметь гораздо больше смысла и сэкономить вам несколько головных болей в будущем. Here - подробная статья, объясняющая почему.

+0

Я большой поклонник стека MEAN. Но на основе моего исследования у mongodb есть свой набор ограничений, как вы упомянули. –

+0

В любое время, когда вводится термин «социальный», я уклоняюсь от Монго. Друзьям, нравится, комментарии и т. Д., Можно моделировать с Монго, но неэффективно и громоздко, как говорит социальная сеть.Тем не менее, огромный сторонник Node на сервере и Angular как интерфейсная платформа. – MattDionis

+0

Согласен. Угловой передний конец тоже мой любимый. Я планирую использовать ионную (зависимость от угловой) рамки для создания своего приложения. –

0

См. Этот код.

Server.js

var express = require("express"); 
var mysql = require("mysql"); 
var bodyParser = require("body-parser"); 
var rest = require("./REST.js"); 
var app = express(); 

function REST(){ 
    var self = this; 
    self.connect_to_mysql(); 
} 

REST.prototype.connect_to_mysql = function() { 
    var self = this; 
    var pool  = mysql.createPool({ 
     connectionLimit : 100, 
     host  : 'localhost', 
     user  : 'root', 
     password : '', 
     database : 'restful_api_demo', 
     debug : false 
    }); 
    pool.getConnection(function(err,connection){ 
     if(err) { 
      self.stop(err); 
     } else { 
      self.configureExpress(connection); 
     } 
    }); 
} 

REST.prototype.configureExpress = function(connection) { 
     var self = this; 
     app.use(bodyParser.urlencoded({ extended: true })); 
     app.use(bodyParser.json()); 
     var router = express.Router(); 
     app.use('/api', router); 
     var rest_router = new rest(router,connection); 
     self.start_server(); 
} 

REST.prototype.start_server = function() { 
     app.listen(3000,function(){ 
      console.log("All right ! I am alive at Port 3000."); 
     }); 
} 

REST.prototype.stop = function(err) { 
    console.log("ISSUE WITH MYSQL \n" + err); 
    process.exit(1); 
} 

new REST(); // Instantiate clas 

Вот REST.js

function REST_ROUTER(router,connection) { 
    var self = this; 
    self.handle_routes(router,connection); 
} 

REST_ROUTER.prototype.handle_routes = function(router,connection) { 
    router.get("/",function(req,res){ 
     res.json({"Message" : "Hello World !"}); 
    }) 
} 

module.exports = REST_ROUTER; 

Ссылка: http://codeforgeek.com/2015/03/restful-api-node-and-express-4/

0

sailsjs с CouchDB и угловыми JS был бы мой recommendation.you может относиться couchdb vs mongodb также обратитесь к this , чтобы увидеть преимущества & функции s . беспокоит Вы можете использовать nano вместе с couchdb-lucene, чтобы максимально использовать возможности дивана.

Смежные вопросы