什么数据库与Node.js最兼容?

时间:2014-01-14 01:34:32

标签: javascript node.js

目前,我正在使用Node.js构建一个网站。我熟悉MySQL。但是我发现有人说Node.js的MySQL模块有错误并且与Node.js不兼容。所以我想知道任何与Node.js最兼容的数据库。 mongodb是个不错的选择吗?

提前致谢。

3 个答案:

答案 0 :(得分:6)

我每次都在使用MongoDB和我的Node.js应用程序。这很容易和优雅,因为Mongo具有与应用程序其他部分类似的语法 例如,此方法检索所选用户的一些条目:

exports.entries = function (req, res) {
    var user_id = parseInt(req.params.user_id);

    db.collection('entries', function(err, collection) {
        collection.find({user_id: user_id}).toArray(
            function(err, entries) {
                res.json({
                    entries: entries
                });
            }
        );
    });
};

MongoDB驱动程序也是用纯JavaScript编写的,它为MongoDB提供了一个本机异步Node.js接口,使其非常快。

答案 1 :(得分:3)

“哪个数据库与节点一起使用”可能不是正确的问题。但是,缺少您的数据库要求是根据我的经验列出的利弊:

  • 驱动程序支持:PostrgreSQL,Mysql,Mongo,CouchDB具有良好的驱动程序,具有大量用户和生产应用程序。 Oracle和MSSQL驱动程序在节点生态系统中拥有的用户少得多,如果遇到问题,你就可以自己动手了(这里的事情越来越好,有MS开发的驱动程序,但是你锁定了Windows)
  • 趋势:PostgreSQL为通用数据库,Mysql如果您有遗留数据库,redis / leveldb用于键/值/缓存类型的数据,mongo用于数据集,预计不会增长到大于几GB。
  • 通用建议:选择你熟悉的DB。与正确的数据库架构/备份/数据完整性/复制/故障转移等相比,Node.js驱动程序不是一个问题。

答案 2 :(得分:1)

您应该更多地回答这个问题,您计划查询数据的方式比使用特定应用程序堆栈的数据库要多。请参阅此blog post的开头部分。

你的问题有点像问:“我应该买锤子还是螺丝刀?”我不知道 - 你需要用钉子或螺丝钉开车吗?

如果这只是一个用于学习目的的玩具项目,我可能会选择使用MongoDB。