为什么Nodejs的项目大多是用 require("mongodb"),感觉这个写起来好麻烦,有人用mongoskin吗,这个貌似要简洁些
为什么Nodejs的项目大多是用 require(“mongodb”),感觉这个写起来好麻烦,有人用mongoskin吗,这个貌似要简洁些
示例代码
var mongo = require("mongodb"),
Server = mongo.Server,
mongoServer = new mongo.Server('localhost', 27017,server_options),
db=new mongo.Db('test',mongoServer , db_options);
db.open(function(err){
if(!err){
db.collection('blog',{safe:true},function(err,coll){
if(!err){
coll.find().toArray(function(err,docs){
console.log(docs);
db.close();
});
}
});
}
});
mongoskin
var db = require('mongoskin').db('localhost:27017/test');
db.collection('blog').find().toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
php
$mg=new Mongo('localhost');
$coll=$mg->selectCollection('test','blog');
$rows=$coll->find();
为什么Node.js的项目大多是用 require("mongodb")
,感觉这个写起来好麻烦,有人用mongoskin
吗,这个貌似要简洁些?
示例代码
首先,让我们看看使用 require("mongodb")
的方式:
// 使用原生 MongoDB 驱动
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("test");
dbo.collection("blog").find({}).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
在这个例子中,我们使用了 require("mongodb")
提供的 MongoClient
类来连接到 MongoDB 数据库,并获取一个集合来执行查询。
mongoskin
的简洁性
接下来,让我们看看如何使用 mongoskin
来简化上述操作:
// 使用 mongoskin
var db = require('mongoskin').db('localhost:27017/test');
db.collection('blog').find().toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
在 mongoskin
中,你可以直接通过一个简单的 URL 连接到数据库,并且可以立即使用 collection()
方法来访问集合。这使得代码更加简洁易读。
总结
require("mongodb")
:虽然代码略显冗长,但它提供了更多的灵活性和控制,例如连接选项、错误处理等。mongoskin
:代码更简洁,但可能在灵活性上有所欠缺。如果你的项目不需要复杂的配置或高级功能,mongoskin
可以是一个很好的选择。
无论你选择哪种方式,确保你的代码能够满足项目的实际需求。
mongoskin 看来不错。
我一直用 mongodb 驱动是因为这是官方版。在 mongodb 基础上我也自己包裹了一下,界面和 mongoskin 差不多。
用的不习惯自己封装一层不就好了
其实Mongoose跟符合逻辑一点~
坚持用MYSQL的飘过…
我已经改用mongojs,貌似比mongoskin快~~
我用楼主提供的那段MongoSkin代码在node.js里运行,总是出现如下error:
var db = require(‘mongoskin’).db(‘localhost:27017/test’); db.collection(‘blog’).find().toArray(function(err, result) { if (err) throw err; console.log(result); db.close(); });
报错信息:
TypeError: Cannot read property ‘name’ of undefined at Object.makeSkinClass (d:\progra~1\nodejs\node_modules\mongoskin\lib\utils.js:33:43) at Object.<anonymous> (d:\progra~1\nodejs\node_modules\mongoskin\lib\mongo_client.js:7:29) at Module._compile (module.js:456:26) at Object.Module._extensions…js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at d:\progra~1\nodejs\node_modules\mongoskin\lib\index.js:25:15 at Array.forEach (native)
在Node.js项目中,require("mongodb")
是官方MongoDB驱动程序的标准使用方式。这种方式虽然显得稍微繁琐一些,但提供了完整的功能、更好的性能以及官方支持。
然而,mongoskin
这个库简化了对数据库的操作过程,使代码看起来更简洁。以下是两者的比较和示例代码:
使用 require("mongodb")
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
dbo.collection("customers").find({}).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
使用 mongoskin
var db = require('mongoskin').db('localhost:27017/test');
db.collection('blog').find().toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
可以看到,在使用 mongoskin
时,代码确实更加简洁。但是,需要注意的是,mongoskin
已经不再维护,并且可能在未来的版本中不再兼容。因此,建议还是使用官方的 mongodb
驱动,以确保项目的长期稳定性和安全性。