鍍金池/ 問答/HTML/ node 某個對象中的方法調(diào)用了該對象另一個方法時報錯

node 某個對象中的方法調(diào)用了該對象另一個方法時報錯

代碼如下

const File = require('../lib/file').File
const path = require('path')
const fs = require('fs')

let handleFile = {
    // 上傳一個文件
    create (file) {
        return File.create(file)
    },
    // 通過 id 獲取文件
    getFileById (id) {
        return File
            .findOne({ _id: id })
            // .addCreatedAt()
            .exec()
    },
}
// 通過 id 刪除文件
handleFile.deleteFileById = function async (id) {
    let fileObject = await handleFile.getFileById(id)
    fs.unlink(path.join('../uploads',fileObject.filename))
    return File
        .remove({ _id: id })
        .exec()
}
// 獲取文件路徑
// fileOperate.getFilePath = function async (id) {
//     let fileObject = await file_operate.getFileById(id)
//     return path.join('../uploads',fileObject.filename)
// }
module.exports = handleFile

報錯截圖如下

clipboard.png

nodejs 版本 8.9.3 async/await 可以正常使用

回答
編輯回答
孤影

async地方寫錯了吧

2018年1月14日 17:06
編輯回答
安淺陌

async要放在function前面。

2018年3月31日 19:57
編輯回答
厭惡我
// 通過 id 刪除文件
handleFile.deleteFileById = async function (id) {
    let fileObject = await handleFile.getFileById(id)
    fs.unlink(path.join('../uploads',fileObject.filename))
    return File
        .remove({ _id: id })
        .exec()
}
2017年12月17日 12:47