2013-08-23 13 views
2

我已经从暂存计算机上完美运行的临时环境中取消了一个应用程序,但本地挂起了sequelize.sync函数。Sequelize .sync函数挂起:来自serial.klass的发射器

应用程序甚至没有达到“侦听端口...”

我已经通过同步功能记录内Sequelize,发现这是它被套牢:

(线79 - 88在查询chainer.js)

var emitter = serial.klass[serial.method].apply(serial.klass, serial.params) 

emitter.success(function(result) { 
    self.serialResults[serialCopy.indexOf(serial)] = result 

    if (serial.options.success) { 
    serial.options.success(serial.klass, onSuccess) 
    } else { 
    onSuccess() 
    } 
}).error(onError) 

该函数不返回到要么successerror。因为我知道他们的库正在工作,所以我不应该对他们的代码进行任何更改 - 我有一个本地副本,用于重构,并且我只需要分段副本在生产过程中快速更改生产重构。

可能导致此问题的原因是什么?它几乎看起来可能是一个连接问题?

我已核实主机为localhost,端口为5432。正确的usernamepassworddbName。全部通过:

sequelize = new Sequelize(config.db.dbName, config.db.username, config.db.password, { 
    dialect: 'postgres', 
    host: config.db.host, 
    port: config.db.port, 
    logging: false, 
    define: sequelizeMethods 
}); 

我也确认postgresql-x64-9.2 - PostgreSQL Server 9.2服务正在运行。

有没有人有任何想法如何解决这个问题?或者获得更多信息的方法?

回答

1

您可以使用psql -d <dbname> -h localhost -U <username> -W连接吗?

是否安装了[email protected]~2.0.0?如果是这样,它是安装在你的机器上还是通过node_modules

你试过npm install sequelize-postgres和使用:

var Sequelize = require('sequelize-postgres').sequelize 
var postgres = require('sequelize-postgres').postgres 

var sequelize = new Sequelize('database', 'username', 'password', { 
    dialect: 'postgres' 
}) 

是否有和PostgreSQL任何输出日志?

1

很难说为什么你提供的信息。我想你应该看看

serial.klass[serial.method] 

我猜应该是这样的

emitter.emit('success'); 

也许这是不会发生和错误也不会发生。希望我能帮上忙。