我有一个nodeJS(v.0.10.23)代理连接到postgres db(node-postgres模块v2.1.0),以及pgpool-II,它返回各种json数据.
回到当天,这就是连接错误的处理方式:
var after = function(callback) {
return function(err, queryResult) {
if(err) {
response.writeHead(500, _header);
console.log("ERROR: 500");
console.log(err);
return response.end(JSON.stringify({error: err}));
}
callback(queryResult)
}
};
Run Code Online (Sandbox Code Playgroud)
基本上它的作用是在没有错误的情况下消耗响应.
可以在此处找到深入的解释:节点js - http.request()连接池问题
使用上面的函数,我有这样的事情:
pg.connect(_conString, after(function(err, client, done) {
client.query(sql, after(function(result) {
...
done();
}
Run Code Online (Sandbox Code Playgroud)
由于当函数传递给after()的回调时上下文丢失,我失去了使用pg.connect()传递的固有done()方法的能力.
删除之后解决了问题,但随后,在适当的时间和相当数量的客户端拉动数据,节点将挂起,直到它被重置.
是否有不同的方式消耗各种异步响应?
或者也许是将pg.connect上下文传递给回调的方法?
鉴于以下实体定义:
@Entity()
export class User extends BaseEntity {
@Column({ nullable: true })
name!: string | null;
@Column()
age!: number;
}
Run Code Online (Sandbox Code Playgroud)
出现以下错误:
typeORM: "message": "Data type \"Object\" in \"User.name" is not supported by \"postgres\" database."
...
name: 'DataTypeNotSupportedError',
message:
'Data type "Object" in "User.name" is not supported by "postgres" database.' }
Run Code Online (Sandbox Code Playgroud)
在查看构建时,我看到 TS 发出的元数据将其作为对象进行寻址:
__decorate([
typeorm_1.Column({ nullable: true }),
__metadata("design:type", Object)
], User.prototype, "name", void 0);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
有没有办法序列化一个表单,以便输出将是base64编码?
带着敬意,
麦克风.
node.js ×2
postgresql ×2
asynchronous ×1
base64 ×1
callback ×1
forms ×1
jquery ×1
sql ×1
typeorm ×1
typescript ×1