Node.js 如何使用NodeJS将多行插入PostreSQL数据库
我正在尝试使用Node.js 如何使用NodeJS将多行插入PostreSQL数据库,node.js,reactjs,postgresql,Node.js,Reactjs,Postgresql,我正在尝试使用 let request = new Request('http://localhost:3000/songs', { method: 'POST', headers: new Headers({ 'Content-Type': 'application/json' }), body: JSON.stringify(data) }); 下面是数据数组的外观 在我的NodeJS应用程序中,我尝试添加如下对象 addSong = (request, r
let request = new Request('http://localhost:3000/songs', {
method: 'POST',
headers: new Headers({ 'Content-Type': 'application/json' }),
body: JSON.stringify(data)
});
下面是数据数组的外观
在我的NodeJS应用程序中,我尝试添加如下对象
addSong = (request, response) => {
const id = parseInt(request.params.id)
const { name, link } = request.body;
pool.query('INSERT INTO songs (name, link) VALUES ($1, $2) RETURNING *', [name, link], (error, results) => {
if (error) {
throw error
console.log(error)
} else {
console.log(results.rows);
response.status(201).send(`Songs added` + request.body.name);
}
});
}
index.js
const app = express();
const db = require('./queries');
app.post('/songs', db.addSong)
我面临的问题是,我相信NodeJS应用程序中的代码只能插入一条记录?如何使其能够添加阵列中的所有对象以生成多行?我被告知有一个for循环,听起来不错,但我不知道如何实现它。查询:
"INSERT INTO songs (name, link) VALUES ($1, $2) RETURNING *', [[name1,link1], [name2,link2]];"
我使用for循环将所有对象保存到数据库中:
const addSong = (request, response) => {
const id = parseInt(request.params.id)
const { name, link } = request.body;
for (var i = 0; i < request.body.length; i++) {
pool.query('INSERT INTO songs (name, link) VALUES ($1, $2) RETURNING *', [request.body[i].name, request.body[i].link], (error, results) => {
if (error) {
throw error
console.log(error)
} else {
console.log("Rows " + JSON.stringify(results.rows));
}
});
}
}
const addSong=(请求、响应)=>{
const id=parseInt(request.params.id)
const{name,link}=request.body;
对于(变量i=0;i{
如果(错误){
抛出错误
console.log(错误)
}否则{
log(“Rows”+JSON.stringify(results.Rows));
}
});
}
}
我遍历数组中的每个对象,并使用[request.body[I].name,request.body[I].link]
插入每个对象