Nodejs休息api&数据库建议

时间:2015-01-15 21:20:02

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

我正在制作社交应用,让我们假设该应用具有以下功能:

  1. 用户Feed
  2. 朋友请求,连接。
  3. 喜欢
  4. 评论
  5. 同样,我正在使用nodejs构建REST API,我对nodejs的体验有限。我花了很多时间研究,我发现了点点滴滴的信息。我期待听到专家的一些建议:)

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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/

答案 2 :(得分:0)

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