javascript - s.replace 不是sequelize.fn 'AVG' 上的函数

标签 javascript node.js sequelize.js

以下查询有效,但代码无效:

/*
SELECT "UserRole", Avg(rating)  FROM "Reviews" AS "Review" GROUP BY "UserRole";
 UserRole |        avg         
----------+--------------------
 COACH | 2.0000000000000000
 PLAYER | 3.0000000000000000
(2 rows)

*/
router.get("/as",function(request,response){
  model.Review.find({
      where: { UserId: 1},
      attributes: [ "UserRole", [ sequelize.fn('AVG', sequelize.col('rating')) ]],  
      group: ["UserRole"],


    }).then(function(ratings){

    })

})

这是我收到的错误:

Unhandled rejection TypeError: s.replace is not a function
    at Object.module.exports.removeTicks (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/utils.js:376:14)
    at Object.module.exports.addTicks (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/utils.js:372:29)
    at Object.QueryGenerator.quoteIdentifier (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/dialects/postgres/query-generator.js:844:20)
    at Object.QueryGenerator.quoteIdentifiers (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/dialects/abstract/query-generator.js:937:19)
    at /media/mydata/projects/jobcuejs/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1080:82
    at Array.map (native)
    at Object.QueryGenerator.selectQuery (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1062:55)
    at QueryInterface.select (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/query-interface.js:661:25)
    at null.<anonymous> (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/model.js:1413:32)
    at tryCatcher (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/promise.js:503:31)
    at Promise._settlePromise (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/promise.js:560:18)
    at Promise._settlePromise0 (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/promise.js:605:10)
    at Promise._settlePromises (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/promise.js:684:18)
    at Async._drainQueue (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/async.js:126:16)
    at Async._drainQueues (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/async.js:136:10)

我在这里做错了什么?

最佳答案

你可以尝试这样的事情

[ sequelize.fn('AVG', sequelize.col('rating')), "avg" ]

关于javascript - s.replace 不是sequelize.fn 'AVG' 上的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37485115/

相关文章:

javascript - 在 vuejs 上向父级发送样式值

node.js - 如何为即时消息系统设计 redis pub/sub?

javascript - 如何正确设置 Node、Express 和 Angular2

node.js - Ionic2 app.bundle.js 文件消失

mysql - Sequelize从belongsTo关系中获取值

sql-server - 使用触发器在表上插入行的 Sequelize 问题

javascript - 在 Bootstrap v5.0.0-alpha1 中,我可以将什么用于媒体(BS 3/4)?

javascript - 使用 Javascript 提取给定格式的数据

javascript - 模块导出模块不起作用

node.js - Nodejs 使用 Sequelize。 "[].belongsTo called with something that' 不是 Sequelize.Model at Function 的子类。”