【问题标题】:Nodejs rest api & database recommendationsNode Js rest api和数据库推荐
【发布时间】:2015-01-15 21:20:01
【问题描述】:

我正在开发一款社交应用,假设该应用具有以下功能:

  1. 用户供稿
  2. 好友请求,连接。
  3. 喜欢
  4. 评论

同样,我正在使用 nodejs 构建一个 REST API,我对 nodejs 的经验是有限的。我花了很多时间研究,我发现了一些零碎的信息。我期待听到专家的一些建议:)

  1. 我打算使用 NoSQL 图形数据库(Neo4j,OrientDB)。这是不是一个不错的选择。或者他们是更好的选择,还是我应该使用 mysql 之类的关系数据库?
  2. 对于 CRUD 操作,我在想sailjs。 (我计划使用 yeoman,但目前还没有 Sails 的生成器)。想法/建议?

感谢您的帮助。

【问题讨论】:

  • 请问您喜欢使用帆的什么地方?
  • Mongodb 可能值得一看? mongodb.org
  • @dandavis - 连接到任何数据库(我知道他们正式支持本地磁盘、redis、my sql 和其他一些)。支持 websockets,并且有一个基于护照的身份验证生成器可与帆一起使用。 :)
  • @Magrangs - 我对 mongodb 进行了很多研究,人们在适应 mongo 后很快就表达了他们的沮丧。
  • @AbhilashShamsunder 我自己也不太熟悉,但他们遇到了什么样的挫折? (供将来参考)。

标签: javascript node.js rest sails.js nosql


【解决方案1】:

我是 MEAN Stack 的忠实粉丝。 MongoDB 用于数据库,ExpressJS 用于 Node 框架,AngularJS 用于前端,NodeJS 用于服务器。话虽如此,我构建的应用程序可以很好地与 MongoDB 的 NoSQL 结构配合使用。对于社交网络,关系数据库可能更有意义,并且可以为您省去一些麻烦。 Here 是一篇详尽的文章,解释了原因。

【讨论】:

  • 我是 MEAN 堆栈的忠实粉丝。但根据我的研究,正如你提到的,mongodb 有其自身的限制。
  • 每当提到“社交”这个词时,我都会回避 Mongo。朋友、喜欢、cmets 等都可以用 Mongo 建模,但随着所述社交网络的增长,效率低下且繁琐。仍然是服务器上 Node 和 Angular 作为前端框架的大力倡导者。
  • 我同意。 Angular 前端也是我的最爱。我打算使用离子(角度依赖)框架来构建我的应用程序。
【解决方案2】:

请参考此代码。

服务器.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/

【讨论】:

    【解决方案3】:

    sailsjs 与 couchdb 和 angular js 将是我的推荐。你可以参考couchdb vs mongodb 也请参考this 了解风帆的优点和特点。 您可以使用nanocouchdb-lucene 来充分利用沙发数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 2011-06-01
      • 2019-05-30
      相关资源
      最近更新 更多