nodejs操作MongoDB数据库 MongoDB增、删、改、查

   2023-02-09 学习力0
核心提示:nodejs、MongoDB相关介绍请自行了解。使用环境"node": "^10.16.0""mongodb": "^3.6.0"操作流程其实很简单,如果想对数据库进行操作,肯定要先连接数据库吧,连接完数据库肯定要找要操作的数据表吧,找到数据表了,是不是就可以对数据表进行增、删、改、查了!

nodejs、MongoDB相关介绍请自行了解。

使用环境

  • "node": "^10.16.0"
  • "mongodb": "^3.6.0"

操作流程

其实很简单,如果想对数据库进行操作,肯定要先连接数据库吧,连接完数据库肯定要找要操作的数据表吧,找到数据表了,是不是就可以对数据表进行增、删、改、查了!更全的英文文档请访问mongodb.com

具体操作

安装MongoDB

安装MongoDB

npm install mongodb --save

引入 mongodb下面的连接模块MongoClient

// 引入MongoDB 连接模块
const MongoClient = MongoDB.MongoClient;

连接数据库

// 数据库地址
let url = "mongodb://localhost:27017/";
MongoClient.connect(url,(err,client)=>{
  if(err){
    console.log(err);
    return false;
  }

});

关闭连接数据库

MongoClient.connect(url, function (err, client) {
  // 执行数据库操作
  ...code

  // 关闭连接数据库
  client.close();
});

创建集合实例

如果你对数据库和集合的概念不理解的话,电脑上的Excel文件用过吧,一个Excel文件里是不是有多个sheet表,对应的一个数据库里也可以有多个集合(MySQL里面叫表,MongoDB里叫集合)。

mongodb当集合不存在时,会自动创建集合,因此,可以不用特意的进行集合的创建操作

const MongoClient = require("mongodb").MongoClient;
const url = "xxxxxxxx";
MongoClient.connect(url, function (err, client) {
  client
    .db("example")   // 连接example数据库
    .createCollection("table1")   // 创建一个table1集合实例,如果集合不存在,会自动创建集合
    .then(
      function (result) {},
      function (err) {
        console.log(err.message);
      }
    );
});

Node.js中创建一个Collection对象实例的方法:

var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost:27017",function(err,db){
	dbo = db.db("test");
	collectionIns = dbo.collection("products");
	console.log(collectionIns);
	db.close();
});

其中 collectionIns是一个collection对象实例,Collection对象实例有很非常多的方法可以使用,下文举例一些实例方法。

获取所有集合

const MongoClient = require("mongodb").MongoClient;
const url = "";
MongoClient.connect(url, function (err, client) {
    client.db("example").listCollections().toArray().then(function (tables) {
        tables.forEach(function (value, index, ts) {
            console.log(value.name);
        })
    }, function (err) {
        console.log(err.message);
    })
});

包装ID

通过id对数据操作的时候需要用到此方法,MongoDB里面查询_id ,把字符串转换成对象,MongoDB数据库里的_id是自动生成的,通过dind方法查询结果可以看到形式如: {"_id": ObjectId("5aad299bc166236421c99d229")},直接传入5aad299bc166236421c99d229,是查询不到结果的,所以需要包装一下


// 引入MongoDB 模块
const MongoDB = require("mongodb");
// 引入MongoDB 连接模块
const MongoClient = MongoDB.MongoClient;
// 引入MongoDB ObjectID模块
const ObjectID = MongoDB.ObjectID;

let _id = new ObjectID("5bcae50ed1f2c2f5e4e1a76a");
db.collection('xxx').find({
 "_id": _id
}).forEach(function (item) {
 console.log(item)
})

向集合中插入一条数据

insertOne(json):插入一条数据json格式

MongoClient.connect(url, function (err, client) {
  client
    .db("example")
    .collection("table1")
    .insertOne({ name: "张三丰11" })
    .then(
      function (result) {},
      function (err) {
        console.log(err.message);
      }
    );
});

向集合中批量插入一组数据,数组里的每一个对象都是一条数据,会有各自的_id索引

insertMany(array):插入一组数据array格式

MongoClient.connect(url, function (err, client) {
  client
    .db("example")
    .collection("table1")
    .insertMany([
      { name: "张红2" },
      { name: "张红3" },
      { name: "张红4" },
      { name: "张红5" },
    ])
    .then(
      function (result) {},
      function (err) {
        console.log(err.message);
      }
    );
});

向集合中删除一条数据

removeOne(json):插入一组数据json格式

如果集合中有多个name是张三丰的,默认只会删除第一条数据。

MongoClient.connect(url, function (err, client) {
  client
    .db("example")
    .collection("table1")
    .removeOne({ name: "张三丰" })
    .then(
      function (result) {},
      function (err) {
        console.log(err.message);
      }
    );
});

向集合中批量删除一组数据

deleteMany(json):插入一组数据json格式,符合条件的都会被删除。

MongoClient.connect(url, function (err, client) {
  client
    .db("example")
    .collection("table1")
    .deleteMany({ name: "张三丰" })
    .then(
      function (result) {},
      function (err) {
        console.log(err.message);
      }
    );
});

向集合中修改一条数据

updateOne(json, { $set: newJson }): json需要更新数据的条件,newJson新数据的内容

如果集合中有多个name是张三丰的,默认只会删除第一条数据。

MongoClient.connect(url, function (err, client) {
  client
    .db("example")
    .collection("table1")
    .updateOne({ name: "张三丰" }, {
            $set: { name: "小鱼儿"},
          })
    .then(
      function (result) {},
      function (err) {
        console.log(err.message);
      }
    );
});

.updata方法针对不同的数据有不同的运算符可以直接使用,方便快捷。

字段更新运算符

字段更新运算符:

  • $inc : 增加指定字段的值
  • $mul : 将字段的值乘以数字
  • $rename : 更新一个字段的名称
  • $setOnInsert : 插入数据默认值
  • $set : 设置一个字段的值
  • $unset : 删除某个字段
  • $min : 赋值最小值
  • $max : 赋值最大值
  • $currentDate : 日期操作

详情请访问英文官网

$inc 增加指定字段的值

例如:
有这样一个数据

{
  _id: 1,
  sku: "abc123",
  quantity: 10,
  metrics: {
    orders: 2,
    ratings: 3.5
  }
}

以下updateOne()操作使用 $inc运算符将quantity字段减小2 (即增加-2),并将metrics.orders字段增大1:

db.products.updateOne(
   { sku: "abc123" },
   { $inc: { quantity: -2, "metrics.orders": 1 } }
)

更新后的文档类似于:

{
   "_id" : 1,
   "sku" : "abc123",
   "quantity" : 8,
   "metrics" : {
      "orders" : 3,
      "ratings" : 3.5
   }
}
$mul 将字段的值乘以数字

例如:
有这样一个数据

{ _id: 1, item: "ABC", price: 10.99 }

以下updateOne()操作使用 $mul运算符将price字段乘以1.25

db.products.updateOne(
   { _id: 1 },
   { $mul: { price: 1.25 } }
)

更新后的文档类似于:

{ _id: 1, item: "ABC", price: 13.7375 }
$rename 更新一个字段的名称

例如:

有这样一个数据

{
  "_id": 1,
  "alias": [ "The American Cincinnatus", "The American Fabius" ],
  "mobile": "555-555-5555",
  "nmae": { "first" : "george", "last" : "washington" }
}

{
  "_id": 2,
  "alias": [ "My dearest friend" ],
  "mobile": "222-222-2222",
  "nmae": { "first" : "abigail", "last" : "adams" }
}

{
  "_id": 3,
  "alias": [ "Amazing grace" ],
  "mobile": "111-111-1111",
  "nmae": { "first" : "grace", "last" : "hopper" }
}

此操作将字段重命名nmaename

db.students.updateMany( {}, { $rename: { "nmae": "name" } } )

如果属性是一个对象里面的属性,使用对象属性的写法,如:db.students.update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } )
更新后的文档类似于:

{
  "_id": 1,
  "alias": [ "The American Cincinnatus", "The American Fabius" ],
  "mobile": "555-555-5555",
  "name": { "first" : "george", "last" : "washington" }
}

{
   "_id" : 2,
   "alias" : [ "My dearest friend" ],
   "mobile" : "222-222-2222",
   "name" : { "first" : "abigail", "last" : "adams" }
}

{ "_id" : 3,
  "alias" : [ "Amazing grace" ],
  "mobile" : "111-111-1111",
  "name" : { "first" : "grace", "last" : "hopper" } }
$setOnInsert 插入数据默认值

如果upsert:true的时候,更新操作导致的是新插入的文档,之前没有过这个数据的,则$setOnInsert将指定的值分配给文档中的字段,也就是$setOnInsert才会生效。如果更新操作没有导致插入新文档,也就是在旧的数据上进行修改,则$setOnInsert不执行任何操作。
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
例如:

以下updateOne()操作使用 $setOnInsert更新

db.products.updateOne(
  { _id: 1 },
  {
     $set: { item: "apple" },
     $setOnInsert: { defaultQty: 100 }
  },
  { upsert: true }
)

更新后的文档类似于:

{ "_id" : 1, "item" : "apple", "defaultQty" : 100 }
$set 设置一个字段的值

例如:
有这样一个数据

{
  _id: 100,
  sku: "abc123",
  quantity: 250,
  instock: true,
  reorder: false,
  details: { model: "14Q2", make: "xyz" },
  tags: [ "apparel", "clothing" ],
  ratings: [ { by: "ijk", rating: 4 } ]
}

对于符合_id等于的条件的文档100,以下操作将使用$set运算符来更新quantity字段,details字段和tags 字段的值。

db.products.updateOne(
   { _id: 100 },
   { $set:
      {
        quantity: 500,
        details: { model: "14Q3", make: "xyz" },
        tags: [ "coats", "outerwear", "clothing" ]
      }
   }
)

该操作将以下值替换为:quantityto 500; 该 details字段到一个新的嵌入的文档,并且tags字段到一个新的数组。

$unset 删除某个字段,如果字段不存在,则不会影响操作

例如:

以下updateOne()操作使用 $unset 删除quantity和instock两个字段

db.products.updateOne(
   { sku: "unknown" },
   { $unset: { quantity: "", instock: "" } }
)
$min 赋值最小数

如果指定的值小于字段的当前值,\(min会将该字段的值更新为指定值。\)min运算符可以使用BSON比较顺序比较不同类型的值。
简单的说就是如果新值比旧值小的时候才会生效,否则不会更新。
例如:
原数据

{ _id: 1, highScore: 800, lowScore: 200 }

以下updateOne()操作使用 $min 更新lowScore的值为150,只有新值比旧值小的时候才会生效,否则不会更新

db.products.updateOne(
   { _id: 1 }, { $min: { lowScore: 150 } }
)
$max 赋值最大数

如果指定的值大于字段的当前值,\(max会将该字段的值更新为指定值。\)max运算符可以使用BSON比较顺序比较不同类型的值。
简单的说就是如果新值比旧值大的时候才会生效,否则不会更新。
例如:
原数据

{ _id: 1, highScore: 800, lowScore: 200 }

以下updateOne()操作使用 $max 更新highScore的值为950,只有新值比旧值大的时候才会生效,否则不会更新

db.products.updateOne(
   { _id: 1 }, { $max: { highScore: 950 } }
)

数组更新运算符

数组更新运算符:

  • $
  • $addToSet
  • $pop
  • $pullAll
  • $pull
  • $pushAll
  • $push
  • $each
  • $slice
  • $sort
  • $position
$
$addToSet
$pop
$pullAll
$pull
$pushAll
$push
$each
$slice
$sort
$position

向集合中批量修改一组数据

updateMany(json, { $set: newJson }): json需要更新数据的条件,newJson新数据的内容。只要符合条件的数据都会被修改更新。

MongoClient.connect(url, function (err, client) {
  client
    .db("example")
    .collection("table1")
    .updateMany({ name: "张三丰" }, {
            $set: { name: "小鱼儿"},
          })
    .then(
      function (result) {},
      function (err) {
        console.log(err.message);
      }
    );
});

获取集合中的一组数据

find(json,projection): json是需要更新数据的条件。只要符合条件的数据都会被返回,{}是返回所有数据,projection是可选项,指定匹配数据中返回哪些字段,{ projection: { article_id: 1, name: 0 }, 1true是显示字段,0false是不显示,。

注意:find({}, { projection: { article_id: 1 }})要这样写,官网都没有写成{ projection: {xxxx}}这样,所以一直没有生效,有可能是MongoDB版本问题吧

MongoClient.connect(url, function (err, client) {
  client
    .db("example")
    .collection("table1")
    .find({ name: "张三丰" })
    .toArray()
    .then(
      function (result) {
        result.forEach(function (value, index, arr) {
          console.log(value);
        });
      },
      function (err) {
        console.log(err.message);
      }
    );
});

db.集合名.count():指定集合文档数量 
db.集合名.find().count() : 根据条件查找数量
db.集合名.find({userName:/张/}):模糊查找。查找名字当中包含常
db.集合名.find({age:{$gt:12}}):查找年龄大于12
    $gt:大于
    $gte:大于等于
    $lt:小于
    $lte:小于等于
    $ne:不等于
db.集合名.find({age:{$ne:12},sex:"女"}):多条件,年龄不等于12,性别为女
或
db.集合名.find({$or:[{sex:"女"},{age:12}]}):查找性别为女,或年龄为12的记录
db.集合名.find().skip(2):跳指指定的文档数(跳过前两行文档)
db.集合名.find().limit(3):取指定的文档数(取前三行文档)
db.集合名.find().sort({age:-1}):按照年龄的倒序。1正序,-1倒序
db.集合名.find().sort({age:-1,"score.yuwen":1}):按照年龄的倒序,如果年龄相同,按照语文的正序
db.集合名.findAndModify(query,sort,update,[options],callback)
对于query参数匹配的文档进行修改。sort参数确定哪些对象先被修改。update参数指定要在文档上进行的更改,回调函数接收err,res
db.集合名.findAndRemove(query,sort,[options],callback)
删除与query匹配的字符串,sort决定哪些字符串先被修改,callback接收err和res
db.集合名.distinct(key,[query],callback)
在集合中为一个特定的文档key创建不同的值的列表。如果指定query参数那么只有与query匹配的文档在内。回调函数接受error,values
db.集合名.count([query],callback)
计算集合中文档的数量,
db.集合名.drop(callback) 
删除当前集合
db.集合名.stats(callback)
获取集合的统计信息,包括条目数量,在磁盘上的大小,平均对象大小,以及更多的信息。



分页操作

    已知:
        1、pageIndex:指定的页数
        2、count:文档数量
        3、pageSum:总页数      pageSum = Math.ceil(count/pageNum)
        4、pageNum:每页显示的条数
    求:
        每页要显示的内容。
    问:总条数9,每页2条,每一页的内容如何求
        skip = (pageIndex-1)*pageNum;
        1、 db.score.find().sort({age:-1}).skip(0).limit(2)
        2、 db.score.find().sort({age:-1}).skip(2).limit(2)
        3、 db.score.find().sort({age:-1}).skip(4).limit(2)
        4、 db.score.find().sort({age:-1}).skip(6).limit(2)
        4、 db.score.find().sort({age:-1}).skip(8).limit(2)

获取集合中的全部数据

find(json): json需要更新数据的条件。只要符合条件的数据都会被返回。

只要传入的json是个空对象,就会返回所有数据了

MongoClient.connect(url, function (err, client) {
  client
    .db("example")
    .collection("table1")
    .find({})
    .toArray()
    .then(
      function (result) {
        result.forEach(function (value, index, arr) {
          console.log(value);
        });
      },
      function (err) {
        console.log(err.message);
      }
    );
});

读取大于100条数据的时候会出现报错官网解释,可以尝试用forEach代替

MongoClient.connect(url, function (err, client) {
  client
    .db("example")
    .collection("table1")
    .find({})
    .forEach()
    .then(
      function (result) {
        result.forEach(function (value, index, arr) {
          console.log(value);
        });
      },
      function (err) {
        console.log(err.message);
      }
    );
});

封装的操作MongoDB库

/* 
 封装DB库操作
 */

// 引入MongoDB 模块
const MongoDB = require("mongodb");
// 引入MongoDB 连接模块
const MongoClient = MongoDB.MongoClient;
// 引入MongoDB ObjectID模块
const ObjectID = MongoDB.ObjectID;
// 引入配置文件
const Config = require("./MongoDB.config.js");

class Db {
  // 单例模式,解决多次实例化时候每次创建连接对象不共享的问题,实现共享连接数据库状态
  static getInstance() {
    if (!Db.instance) {
      Db.instance = new Db();
    }
    return Db.instance;
  }
  constructor() {
    // 属性 存放db对象
    this.dbClient = "";
    // 实例化的时候就连接数据库,增加连接数据库速度
    this.connect();
  }
  // 连接数据库
  connect() {
    return new Promise((resolve, reject) => {
      // 解决数据库多次连接的问题,要不然每次操作数据都会进行一次连接数据库的操作,比较慢
      if (!this.dbClient) {
        // 第一次的时候连接数据库
        MongoClient.connect(Config.dbUrl, (err, client) => {
          if (err) {
            reject(err);
          } else {
            // 将连接数据库的状态赋值给属性,保持长连接状态
            this.dbClient = client.db(Config.dbName);
            resolve(this.dbClient);
          }
        });
      } else {
        // 第二次之后直接返回dbClient
        resolve(this.dbClient);
      }
    });
  }

  /**
   * 查询数据库
   * 使用方法: let result = await DB.find('user',{});
   * @param {String} collectionName 集合名称、数据表名
   * @param {Object} json 查询的条件
   */
  find(collectionName, json) {
    return new Promise((resolve, reject) => {
      this.connect().then((db) => {
        // 操作db库里的某一个表,返回符合条件的内容,json查找的条件
        let result = db.collection(collectionName).find(json);
        result.toArray(function (err, docs) {
          if (err) {
            reject(err);
            return;
          }
          resolve(docs);
        });
      });
    });
  }

  /**
   * 更新数据库,多个符合条件的只会更新第一条数据
   * 使用方法: let result = await DB.update('user',{'username':'lisi'},{'username':'李四'});
   * @param {String} collectionName 集合名称、数据表名
   * @param {Object} json1 需要更新数据的条件
   * @param {Object} json2 新数据的内容
   */
  update(collectionName, json1, json2) {
    return new Promise((resolve, reject) => {
      this.connect().then((db) => {
        // 操作db库里的某一个表,更新一条数据,json1查找的内容,json2更新的新内容,回调函数
        db.collection(collectionName).updateOne(
          json1,
          {
            $set: json2,
          },
          (err, result) => {
            if (err) {
              reject(err);
            } else {
              resolve(result);
            }
          }
        );
      });
    });
  }

  /**
   * 更新数据库,所有符合条件的都会被更新
   * 使用方法: let result = await DB.updateMany('user',{'username':'lisi'},{'username':'李四'});
   * @param {String} collectionName 集合名称、数据表名
   * @param {Object} json1 需要更新数据的条件
   * @param {Object} json2 新数据的内容
   */
  updateMany(collectionName, json1, json2) {
    return new Promise((resolve, reject) => {
      this.connect().then((db) => {
        // 操作db库里的某一个表,更新一条数据,json1查找的内容,json2更新的新内容,回调函数
        db.collection(collectionName).updateMany(
          json1,
          {
            $set: json2,
          },
          (err, result) => {
            if (err) {
              reject(err);
            } else {
              resolve(result);
            }
          }
        );
      });
    });
  }

  /**
   * 插入数据库
   * 使用方法: let result = await DB.insert('user',{'username':'赵六666','age':30,'sex':'女','status':'2'});
   * @param {String} collectionName 集合名称、数据表名
   * @param {Object} json 插入的新数据
   */
  insert(collectionName, json) {
    return new Promise((resolve, reject) => {
      this.connect().then((db) => {
        // 操作db库里的某一个表,插入一条数据,json插入的新内容,回调函数
        db.collection(collectionName).insertOne(json, (err, result) => {
          if (err) {
            reject(err);
          } else {
            resolve(result);
          }
        });
      });
    });
  }

  /**
   * 批量插入数据库,数组里的每一个对象都是一条数据,会有各自的_id索引
   * 使用方法: let result = await DB.insertMany('user',[{'username':'赵六666','age':30,'sex':'女','status':'2'},{'username':'赵六666','age':30,'sex':'女','status':'2'},{'username':'赵六666','age':30,'sex':'女','status':'2'}...]);
   * @param {String} collectionName 集合名称、数据表名
   * @param {Array} json 批量插入的新数据
   */
  insertMany(collectionName, arr) {
    return new Promise((resolve, reject) => {
      this.connect().then((db) => {
        // 操作db库里的某一个表,批量插入一组数据,arr批量插入的新内容,回调函数
        db.collection(collectionName).insertMany(arr, (err, result) => {
          if (err) {
            reject(err);
          } else {
            resolve(result);
          }
        });
      });
    });
  }

  /**
   * 删除数据,多个符合条件的只会删除第一条数据
   * 使用方法: let result = await DB.remove('user',{'username':'李四'});
   * @param {String} collectionName 集合名称、数据表名
   * @param {Object} json 删除数据的条件
   */
  remove(collectionName, json) {
    return new Promise((resolve, reject) => {
      this.connect().then((db) => {
        db.collection(collectionName).removeOne(json, (err, result) => {
          if (err) {
            reject(err);
          } else {
            resolve(result);
          }
        });
      });
    });
  }

  /**
   * 批量删除一组数据,多个符合条件的都会被删除
   * 使用方法: let result = await DB.deleteMany('user',{'username':'李四'});
   * @param {String} collectionName 集合名称、数据表名
   * @param {Object} json 删除数据的条件
   */
  deleteMany(collectionName, json) {
    return new Promise((resolve, reject) => {
      this.connect().then((db) => {
        db.collection(collectionName).deleteMany(json, (err, result) => {
          if (err) {
            reject(err);
          } else {
            resolve(result);
          }
        });
      });
    });
  }

  /**
   * 通过id查询数据时候需要用到此方法,MongoDB里面查询_id ,把字符串转换成对象
   * MongoDB数据库里的_id是自动生成的,通过dind方法查询结果可以看到形式如: {"_id": ObjectId("5aad299bc166236421c99d229")},直接传入5aad299bc166236421c99d229,是查询不到结果的,所以需要包装一下
   * 使用方法: let result = await DB.find('user',{'_id': DB.getObjectID(xxxxx)});
   * @param {String} id 要查询的id
   */
  getObjectID(id) {
    return new ObjectID(id);
  }
}
module.exports = Db.getInstance();


 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 打造自己的 nodejs 静态文件服务器(帖子内容,
    用NodeJS打造你的静态文件服务器在《The Node Beginner Book》的中文版(http://nodebeginner.org/index-zh-cn.html)发布之后,获得国内的好评。也有同学觉得这本书略薄,没有包含进阶式的例子。@otakustay同学说:“确实,我的想法是在这之上补一个简单的MV
    02-10
  • NodeJS无所不能:细数10个令人惊讶的NodeJS开源
    在几年的时间里,NodeJS逐渐发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用NodeJS进行开发,像PayPal,此外,开发人员还可以使用它来开发一些快速移动Web框架。  除了Web应用外,NodeJS也被应用在许多方面,本文盘点了NodeJS在其
    02-10
  • Linux环境下的Nodejs linux安装基本环境
    最近在学习Node.js,在window下总是觉得不那么爽快。最简单而且环保的方法是在虚拟机中安装一个Linux。 { 1.Linux:家中的Linux为Centos。 2.VirtuallyBox: 开启2块网卡。第一个选Host-Only目的是为了让虚拟机通上网。第二块选Bridge Adapter,这是为了
    02-09
  • nodejs package.json说明
    {"name": "test", //项目名称(必须),由小写英文字母、数字和下划线,不能含空格"version": "1.0.0", //项目版本(必须)"description": "This is for study gulp project !", //项目描述(必须)"homepage": "", //项目主页url " key
    02-09
  • 017 nodejs取参四种方法req.body,req.params,re
    摘要: nodejs取参四种方法req.body,req.params,req.param,req.body 获取请求很中的参数是每个web后台处理的必经之路,nodejs提供了四种方法来实现。获取请求很中的参数是每个web后台处理的必经之路,nodejs的 express框架 提供了四种方法来实现。req.bodyre
    02-09
  • Docker windows下安装并搭建Nodejs的webapp
    Docker windows下安装并搭建Nodejs的webapp
    一、关于Docker什么是Docker?Docker 采用go语言编写,是一个开源的应用容器引擎。让开发者可以快速打包他们的应用以及依赖包到一个封装的可移植的容器Image中,然后发布到任何流行的机器( Linux ,windows,Mac等)上,也可以实现虚拟化。容器是使用完全
    02-09
  • Nodejs+Express+Mysql实现简单用户管理增删改查
    Nodejs+Express+Mysql实现简单用户管理增删改查
     源码地址  https://github.com/king-y/NodeJs/tree/master/user目录结构  mysql.jsvar mysql = require('mysql');var pool = mysql.createPool({host : '127.0.0.1',user : 'root',password : '',database : 's79'});exports.que
    02-09
  • nodejs查看本机hosts文件域名对应ip
    const dns = require('dns')dns.lookup('domainName', function(err, result) {console.log(result)}) related:https://***.com/questions/36689536/how-to-resolve-hostname-to-an-ip-address-in-node-js
    02-09
  • nodejs process.memoryUsage() rss等参数啥含义
    nodejs process.memoryUsage() rss等参数啥含义
    1 前言使用process.memoryUsage() ,然后可以得到一个对象如下:{ rss: 4935680,heapTotal: 1826816,heapUsed: 650472,external: 49879}  然而不知道rss是什么缩写,不知道其含义,网上找了一圈,多数都没说到点上,我这边就补充一下,也作为记录使用。2 
    02-09
  • nodejs工程拷贝后运行报module找不到问题
    工程文件夹通过复制黏贴到另外一个地方,运行后报错 “can`t find module 某某某”,查看原因:输入node 进入控制台,输入console.log(module.paths)查看当前nodejs查找module的路径,如果没有工程里的node_modules,通过module.paths.push加入,检查是否有效
    02-09
点击排行