us.mongodb.js 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. //2012年mongodb的连接方式
  2. //包含mongodb驱动程序
  3. //var mongodb = require("mongodb");
  4. //mongodb安装位置
  5. //var server = new mongodb.Server('192.168.65.17', 27017, { auto_reconnect: true });
  6. //指定数据库
  7. //var db = new mongodb.Db('UseStudio_Blog', server, { safe: true });
  8. //打开数据库,console.log('connect');输出调试信息到控制台
  9. //db.open(function (err, db) { if (!err) { console.log('connect'); } else { console.log(err); } });
  10. //2018年mongodb的连接方式。
  11. const MongoClient = require('mongodb').MongoClient;
  12. const assert = require('assert');
  13. // Connection URL
  14. const url = 'mongodb://10.3.14.35:14074';
  15. // Database Name
  16. const dbName = 'UseStudio_Develop';
  17. //连接mongodb后可使用的名称。
  18. var db;
  19. // Use connect method to connect to the server
  20. MongoClient.connect(url, function(err, client) {
  21. assert.equal(null, err);
  22. console.log("连接mongodb成功");
  23. db = client.db(dbName);
  24. //client.close();
  25. });
  26. //选取数据的示例
  27. exports.select = function (sql, callback) {
  28. db.collection('dbo.PBDirectory', { safe: true }, function (err, collection) {
  29. //为啥monogodb返回多条数据不是Json。有点想不通,要先转数组,再转json。而选取一条数据好像不用
  30. //collection.find(function (err, _json) { callback(_json); });
  31. //查找所有数据。
  32. //console.log(collection);
  33. collection.find().toArray(function (err, _json) { callback(JSON.stringify(_json)); })
  34. //根据条件选取数据
  35. //collection.find({ "UserDirectoryName": "自然岩壁" }).toArray(function (err, _json) { callback(JSON.stringify(_json)); })
  36. //根据条件只选取一条数据。为啥取出来的还不是json,还需要转换为json?mongdb需要改写。
  37. //collection.findOne({ "UserDirectoryName": "自然岩壁" }, function (err, _json) { callback(JSON.stringify(_json)); })
  38. });
  39. }
  40. //存储过程示例
  41. exports.pro = function (sql, callback) {
  42. db.eval("testpro()",function (err, _json) {
  43. console.log(_json);
  44. callback(JSON.stringify(_json));
  45. });
  46. }
  47. //存储过程示例,带参数
  48. exports.testparam = function (sql, callback) {
  49. var _param = "自然岩壁";
  50. console.log(_param);
  51. //eval的参数传递要注意,传递字符用单引号。传递字符变量用'"++"'。有点纠结。不用单引号eval出来是个对象。所以一定要单引号
  52. //db.eval("testparam('自然岩壁')", function (err, _json) {
  53. db.eval("testparam('"+_param+"')", function (err, _json) {
  54. console.log(_json);
  55. callback(JSON.stringify(_json));
  56. });
  57. }
  58. //封装数据库连接,暂时不做。以后再看
  59. /*BlogProvider = function (host, port, database) {
  60. //指定服务器
  61. this.server = new mongodb.Server(host, port, { safe: false }, { auto_reconnect: true }, {});
  62. //指定数据库
  63. this.db = new mongodb.Db(database, this.server);
  64. //打开连接
  65. this.db.open(function (err, db) { if (!err) { console.log('connect'); } else { console.log(err); } });
  66. }
  67. BlogProvider.prototype.proselect = function (sql, callback) {
  68. db.eval("testpro()", function (err, _json) {console.log(_json);callback(JSON.stringify(_json));});}
  69. exports.BlogProvider = BlogProvider;*/