javascript - 在mysql数据库 Node js中动态插入多行?

标签 javascript mysql sql node.js

我正在尝试使用 Node js 在 mysql 数据库中插入多行。这个想法是我有四个数组,每个数组有 20 个值。我的目标是使用 Node js 动态插入数据库中的所有值。现在,我有点困惑我应该如何去做。 这是我的服务器文件-

server.js - 
const express = require('express');
const app = express();

var db = require("./DatabaseConfig.js");

var cookieParser = require('cookie-parser');

var path = require('path');

var bodyParser = require('body-parser');
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
    extended: true
}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.get('/', function (req, res) {
    res.send('Hello World!')
});

app.listen(4000, function () {
    console.log('Example app listening on port 4000!')
});

app.get("/home",function(req,res){
    res.render("Home.ejs");
});

app.post("/home",function(req,res)
{
var data = JSON.parse(req.body.info);
console.log(data.length);
var counter = [];
var publicationtitle=[];
    var publicationdate =[];
    var publicationlink=[];
for(var i=0;i<data.length;i++)
{
    counter.push(0);
    publicationtitle.push(data[i]["title"]);
    publicationdate.push(data[i]["pubDate"]);
     publicationlink.push(data[i]["link"]);
}
var res = db.dbconfig();


    var values = [
        publicationtitle, publicationlink,publicationdate,counter
    ];

    console.log("values",values);
   db.insertrecord(values);
    values=[];


});



DatabaseConfig.js

    var mysql      = require('mysql');
    var con = mysql.createConnection({
        host     : 'localhost',
        user     : '****',
        password : '****',
        database : 'test',
        multipleStatements: true
    });


    var values = [];






    module.exports = {
        dbconfig: function(error) {
            con.connect(function(err) {
                if (err) throw err;
                console.log("Connected!");
            });

        },

        insertrecord:function(values){
            var sql = "INSERT INTO rsscontent (title,link,date,count) VALUES ?";


            con.query(sql,[values], function(err) {
                if (err) throw err;
                con.end();
            });

        }


    };

如有任何建议或建议,我们将不胜感激。

最佳答案

您可以像这样构建查询和值:

    let placeholder = users.map(() => "(?, ?)").join(",");
    let query =
        `INSERT INTO ${TABLE_NAME.USER}
        (id, username)
        VALUES ${placeholder}`;

    let values = [];
    users.forEach(user => {
        values.push(user.id);
        values.push(user.username);
    });

一直在使用这个,效果很好。

关于javascript - 在mysql数据库 Node js中动态插入多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44735106/

相关文章:

javascript - 根据版本号对表进行排序

php - 如何设计这个数据库部分?

java - 使用直接调用查询更新表出错

Azure Function App 中的 SQL 注入(inject)保护错误

mysql - 为什么这个 SQL 语句不起作用

javascript - 如何生成rechart动态x轴值

javascript - JavaScript 中对象的区别

mysql - SQL 聚合分数

javascript - Javascript在一段时间后执行函数

java - 我应该如何刷新显示 mySQL 数据库数据的 gui?