首页 > 解决方案 > 使用 Google Trends API 将数据插入 PostgreSQL

问题描述

我已经从 Google Trends API 获取数据,现在我试图将其插入数据库,但一次只插入一行,我想将所有行插入数据库。

try {

var res = await googleTrends.interestByRegion({keyword:keyword,geo:"US-"+state}); //resolution:keyword
res = JSON.parse(res);
// for debugging.
//console.log(res);
if("default" in res){
if("geoMapData" in res["default"]){
for(var x in res["default"].geoMapData){
var row = res["default"].geoMapData[x];

if("geoName" in row && "value" in row){
// console.log(" - " + row.geoName + "\t\t" + row.value);
console.log(">>>>>>>>>>>>>>>>>>",x,row.geoName + row.value)

//insert statement
var name1 = [row.geoName]
// name1.push([keyword,row.geoName])
// var name2 = [row.geoName]

pool.query("INSERT INTO practice(state,keyword) VALUES($1)",name1,(err, res) => {
console.log(err, res);
// pool.end(() => {

// console.log('pool has ended')
//})
});

编译后出现此错误。

error: INSERT has more target columns than expressions
at Connection.parseE (/home/abc/Desktop/node2/node_modules/pg/lib/connection.js:604:13)
at Connection.parseMessage (/home/abc/Desktop/node2/node_modules/pg/lib/connection.js:403:19)
at Socket.<anonymous> (/home/abc/Desktop/node2/node_modules/pg/lib/connection.js:123:22

标签: node.jspostgresqlapijsonparsergoogle-trends

解决方案


推荐阅读