pg-promise创build列错误

var name = req.body.name; db.any('alter table "houseList" add $1 text', [name]) 

我试图添加一个新的列到数据库主机上使用上述代码在nodejs heroku,但我不断收到此错误:

错误:在语法错误或“”哈哈“”

“哈哈”是名字里的价值,任何人都有什么想法是错的?

您正在使用无效的转义列名作为常规stringvariables。

任何模式/表/列名被称为SQL名称,并且必须使用""来转义。

在pg-promise中 ,这意味着您必须使用它的SQL名称支持:name :或〜modifier。

 db.any('alter table "houseList" add $1:name text', [name]) 

要么

 db.any('alter table "houseList" add $1~ text', [name]) 

另外,如果您确定只使用简单的名称,即没有空格,也没有大写字母,那么可以直接使用名称,即使用原始文本 ,通过修饰符:raw^ 。 但一般来说,这是不推荐的,即逃避名称build议更安全;)