我试图使用节点js在mysql数据库中插入多行。这个想法是我有四个数组,每个数组有20个值。我的目标是使用节点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();
});
}
};
任何建议或建议都将受到高度赞赏。
答案 0 :(得分:0)
您可以像这样构建查询和值:
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);
});
一直在使用它并且工作正常。
答案 1 :(得分:0)
除了已经回答的内容之外,您的INSERT
语句必然会抛出错误,因为date
是一个关键字,应该像
var sql = "INSERT INTO rsscontent (title,link,`date`,count) VALUES ?";