node fs读写文件(Promise封装)

//写文件
apiPost.writeFile = function (src, fileName, data) {
    return new Promise((resolve, reject) => {
        try {
            //判断路径文件夹是否存在
            fs.accessSync(src);
        } catch (err) {
            try {
                //不存在创建文件夹
                fs.mkdirSync(src)
            } catch (error) {
              //创建失败
              reject(error)
            }
        }
        //完整文件路径
        let _cache_file = path.resolve(src, fileName);
        //写文件
        fs.writeFile(_cache_file, data, (err) => {
            if (err) {
                reject(err)
            } else {
                resolve(_cache_file)
            }
        });
    });
}
//读文件
apiPost.readFile = function (src) {
    return new Promise((resolve, reject) => {
        let _cache_file = path.resolve(_cache_dir, src);
        fs.readFileSync(_cache_file, {
            encoding: 'utf-8'
        }, function (err, bytesRead) {
            if (err) reject(err);
            resolve(bytesRead)
        });
    });
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用 Node.js 和 MongoDB aggregate 的新 Promise 封装示例: ```javascript const MongoClient = require('mongodb').MongoClient; function aggregatePromise(dbUrl, dbName, collectionName, pipeline) { return new Promise((resolve, reject) => { MongoClient.connect(dbUrl, { useNewUrlParser: true }, (err, client) => { if (err) { reject(err); } const db = client.db(dbName); const collection = db.collection(collectionName); collection.aggregate(pipeline).toArray((err, result) => { if (err) { reject(err); } resolve(result); client.close(); }); }); }); } ``` 使用示例: ```javascript const dbUrl = 'mongodb://localhost:27017'; const dbName = 'test'; const collectionName = 'users'; const pipeline = [ { $match: { age: { $gte: 18 } } }, { $group: { _id: '$gender', count: { $sum: 1 } } } ]; aggregatePromise(dbUrl, dbName, collectionName, pipeline) .then(result => console.log(result)) .catch(err => console.error(err)); ``` 这个示例使用了 MongoDB 的聚合操作,查询年龄大于等于 18 岁的用户并按性别分组统计人数。我们封装了一个名为 `aggregatePromise` 的函数,它接收四个参数,分别是 MongoDB 连接地址、数据库名、集合名和聚合管道。这个函数返回一个 Promise 对象,可以使用 `.then()` 和 `.catch()` 方法处理异步操作的结果和错误。在函数内部,我们使用了 MongoDB 官方提供的 Node.js 驱动程序,连接到指定的数据库,查询指定集合的数据并返回结果。注意,在最后一行代码中,我们调用了 `client.close()` 方法关闭了连接,以避免资源泄漏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值