Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sequelize query is giving TypeError: undefined is not a function

I'm using express and sequelize for my node application. On the controller file, I have the following:

var models          = require('../models'),
    Property        = models.property,
    Sequelize       = require('sequelize');

module.exports = function(req, res){
  Sequelize.query("SELECT * FROM 'property'", { type:Sequelize.QueryTypes.SELECT})
   .then(function(properties) {
      res.json(properties)
  })
}

I can use model.findAll fine but when I try to use raw query, I'm getting the TypeError: undefined is not a function. Can you point what I'm doing wrong in this code?

like image 225
Adam Boostani Avatar asked Jun 05 '16 04:06

Adam Boostani


2 Answers

You need to be calling query() on a Sequelize instance instead:

var Sequelize = require('sequelize');
var sequelize = new Sequelize('database', 'username', 'password');

sequelize.query("SELECT * FROM 'property'", { type:Sequelize.QueryTypes.SELECT})
   .then(function(properties) {
      res.json(properties)
  })
like image 85
alecxe Avatar answered Oct 29 '22 09:10

alecxe


You can use

const sql = "select * from ..."

 model.sequelize.query(sql, { type: model.sequelize.QueryTypes.SELECT })
.then(function (rows) {
    ... do a job on the query here...   
 })
like image 7
Cleidson Barbosa Avatar answered Oct 29 '22 10:10

Cleidson Barbosa