为什么在Sails JS控制台中我的模型上的.query未定义?

时间:2015-09-16 14:14:54

标签: node.js sails.js waterline

在sails控制台中,我应该能够:

User.query("SELECT * FROM USER")

但我得到undefined is not a function,意思是.query未定义。

我重新安装/更新了帆和水线,以及全球风帆,我仍然遇到同样的错误。

谢谢!

4 个答案:

答案 0 :(得分:2)

解决了它。 Sails文档表明使用:

unsigned char

但是sails-postgresql仍在使用旧版:

{
  ...
   adapter: 'sails-postgresql',
  ...
}

一旦我改变了,我开始看到来自服务器的查询,{ ... module: 'sails-postgresql', ... } 函数在我创建的模型下定义。

答案 1 :(得分:1)

您是如何配置模型用户的?它使用哪种适配器?

只有在使用SQL适配器时才允许使用.query方法。

答案 2 :(得分:0)

首先你应该验证你的连接

#model
    module.exports.connections = {
      localMysql: {
        adapter: 'sails-mysql',
        user: 'root',
        host: 'localhost',
        database: 'someDbase'
      },

如果您运行

#EXAMPLE
    User.find().exec(function (error, res){
    console.log(res)
    });  

这将返回所有用户,稍后如果您不运行.exec(),则查询将不会执行。

这里需要回调:

#CONTROLLER
    User.query("SELECT * FROM USER", function(err, results) {
      if (err) 
         return res.serverError(err);
      return res.ok(results);
    });

答案 3 :(得分:0)

如果您使用local.js设置env。

检查env名称,它应该是小写字母。

EX: - environment:process.env.NODE_ENV || '发展'

我遇到同样的问题,我的环名是'开发',改为'开发',工作正常。