Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我在写入数组时出错_Javascript_Node.js - Fatal编程技术网

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;
};