首页 > 解决方案 > TypeError:result.slice 不是函数

问题描述

我正在尝试使用 node/mongoose 运行多个 mongodb 查询。我有非常相似的代码在同一个文件中工作,但不是同一条路线。不同之处在于查询(相同的格式只是不同的搜索参数)和res.render行。

我做了大约一个小时的谷歌搜索和搜索堆栈溢出,到目前为止没有发现任何帮助。

错误信息

TypeError: result.slice is not a function
    at results.map.result (/home/ubuntu/workspace/sailhr/server/routes/hr.js:73:58)
    at Array.map (native)
    at Promise.all.then.results (/home/ubuntu/workspace/sailhr/server/routes/hr.js:73:36)
    at process._tickDomainCallback (internal/process/next_tick.js:135:7)

代码

let queries = [
        User.findById(req.params.id, function(err, foundUser){
           if(err){
               req.flash('error', 'Could not find the user requested.');
           }
        }),
        User.find({companyID: req.user.companyID, role: "manager" }, function(err, allManagers){
           if(err){
               req.flash('error', 'Could not find all company managers.');
           }
        })
        ];
        Promise.all(queries)
            .then(results => (results.map(result => (result.slice(1)))))
            .then(adaptedResults => res.render('user/profileEdit', {header: 'EDIT USER PROFILE', Employee: adaptedResults[0], managers: adaptedResults[1]}))
            .catch(err => {
                console.log(err)
                req.flash('error', err[0]);
                res.redirect('/users');
            });

标签: node.jsmongodbmongoosepromise

解决方案


推荐阅读