无论是 npm install 还是 cnpm,装 sqlite3 模块的时候都会坚持不懈地下载一个 aws 的压缩包…… 由于某些众所周知的原因这个文件是死活下载不了了,尝试加 --proxy 加代理总会遇到这个: Error: tunneling socket could not be established, cause=connect ECONNREFUSED
投错胎选了 hard 模式,头痛不已啊
还有类似 sqlite3 绿色小巧,支持 nodejs/iojs 的数据库备选方案吗?
NeDB 纯js无任何native依赖,性能绝对超过同类数据库很多乃至很多时候比MongoDB要快,API基本兼容MongoDB,缺点是所有数据会都在内存中保留(可选开启同步文件数据库数据不会丢失),不适合太大的数据量 TingoDB 和NeDB类似也是纯js数据库,但是与之不同的是TingoDB试图完全兼容MongoDB绝大数API,所以用TingoDB写出来的程序在将来数据量大需要迁移到MongDB时可基本不改代码无缝切换,另外TingoDB不会把所有数据写入内存中(有可选项可开启内存模式不写入磁盘,方便测试开发使用),性能略低于NeDB EJDB Native C编写的嵌入式数据库,采用Tokyo Cabinet存储格式,速度快于TingoDB慢于NeDB,缺点是缺乏一些常见的数据格式如date等,最近维护看着不是很活跃
如果楼主非要用sqlite3也不无办法,fork一份node-sqlite3然后把那个安装脚本中要下载的先下下来指向一个可以访问的地址,然后 npm --save i sqlite3@git://github.com/your-repo/node-sqlite3.git
@andyhu 折腾一大天没装上依赖有点恼火,没说清楚场景。 数据量很小,只是数万条记录的单表,而且筛选条件非常简单,一次只取一条记录, 所以如果这个模块找不到好的替换我会考虑用 hash 的方案。 传统的 RDBMS 其实也够用,但是想尽量避免服务器环境上折腾太多东西了。
现在看样子 NeDB 的确是个非常好的替代品。非常感谢!