Node Js rest api和数据库推荐
Posted
技术标签:
【中文标题】Node Js rest api和数据库推荐【英文标题】:Nodejs rest api & database recommendations 【发布时间】:2015-01-15 21:20:01 【问题描述】:我正在开发一款社交应用,假设该应用具有以下功能:
-
用户供稿
好友请求,连接。
喜欢
评论
同样,我正在使用 nodejs 构建一个 REST API,我对 nodejs 的经验是有限的。我花了很多时间研究,我发现了一些零碎的信息。我期待听到专家的一些建议:)
-
我打算使用 NoSQL 图形数据库(Neo4j,OrientDB)。这是不是一个不错的选择。或者他们是更好的选择,还是我应该使用 mysql 之类的关系数据库?
对于 CRUD 操作,我在想sailjs。 (我计划使用 yeoman,但目前还没有 Sails 的生成器)。想法/建议?
感谢您的帮助。
【问题讨论】:
请问您喜欢使用帆的什么地方? Mongodb 可能值得一看? mongodb.org @dandavis - 连接到任何数据库(我知道他们正式支持本地磁盘、redis、my sql 和其他一些)。支持 websockets,并且有一个基于护照的身份验证生成器可与帆一起使用。 :) @Magrangs - 我对 mongodb 进行了很多研究,人们在适应 mongo 后很快就表达了他们的沮丧。 @AbhilashShamsunder 我自己也不太熟悉,但他们遇到了什么样的挫折? (供将来参考)。 【参考方案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
了解风帆的优点和特点。
您可以使用nano
和couchdb-lucene
来充分利用沙发数据库。
【讨论】:
以上是关于Node Js rest api和数据库推荐的主要内容,如果未能解决你的问题,请参考以下文章