我有一个记录工作数据的功能。然后我将此数组插入到请求中。
async function setJobs(jobs) {
const insertFieldsOfJob = [];
for (const key of jobs) {
const jobFields = [
`'${key.job_id}'`,
`'${key.description}'`,
`'${key.verified}'`,
`'${key.amount}'`,`,
`'${key.title}'`,
`'${key.ctime}'`,
];
insertFieldsOfJob.push(`(${jobFields})`);
};
const jobsIds = (await db.query(Jobs.writeJobs(insertFieldsOfJob))).rows;
return jobsIds;
};
这里我正在写入工作详细信息数据库
class Job {
static writeJobs(jobsDetails) {
const sql = `INSERT INTO JOBS (JOB_ID, DESCRIPTION, VERIFIED, AMOUNT, TITLE, CTIME)
VALUES
${jobsDetails}
RETURNING ID`
return sql;
}
}
module.exports = Job;
我获取数据
jobs {
job_id: 1,
description: test,
verified: false,
amount: 500.00,
title: test,
ctime: 1564461408000,
}
我收到错误
error: invalid integer value: "500.00"
error: the value "1564461408000" is out of range for type integer
为什么会发生这种情况?我将对象的属性称为字符串。
最佳答案
尝试使用 String() 并删除一些括号。
async function setJobs(jobs) {
const insertFieldsOfJob = [];
for (const key of jobs) {
const jobFields = [
`${String(key.job_id)}`,
`${String(key.description)}`,
`${String(key.verified)}`,
`${String(key.amount)}`,
`${String(key.title)}`,
`${String(key.ctime)}`,
];
insertFieldsOfJob.push(`${jobFields}`);
};
const jobsIds = (await db.query(Jobs.writeJobs(insertFieldsOfJob))).rows;
return jobsIds;
};
关于javascript - 写入数组时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57264686/