Javascript 我在写入数组时出错
我有一个记录工作数据的函数。然后我将这个数组插入到请求中Javascript 我在写入数组时出错,javascript,node.js,Javascript,Node.js,我有一个记录工作数据的函数。然后我将这个数组插入到请求中 async function setJobs(jobs) { const insertFieldsOfJob = []; for (const key of jobs) { const jobFields = [ `'${key.job_id}'`, `'${key.description}'`, `'${key.verified}'`
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"
为什么会这样?我将对象的属性称为字符串。尝试使用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;
};
这意味着你已经给了列
Int
类型,而你应该给amount
和timestamp/date-time
的Float/Double
类型,这取决于你的数据库。@prakash thete I对于所有指定的类型varchar 220
没有错误,但是这个值不是用单引号括起来的。为什么要用单引号括起来呢?这些值已经是字符串
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;
};