Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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_Knex.js - Fatal编程技术网

Javascript 我无法进行插入忽略查询

Javascript 我无法进行插入忽略查询,javascript,knex.js,Javascript,Knex.js,如何使用knex进行插入忽略查询 我试过: knex.raw(knex('music').insert({title: service[i].Title, author: service[i].PrimaryArtistName, album: service[i].TypeAlbumName, lyrics: service[i].Lyrics}).toString().replace("insert", 'insert ignore')); 但它不起作用 更新: 如果我加上 .then(f

如何使用knex进行插入忽略查询

我试过:

knex.raw(knex('music').insert({title: service[i].Title, author: service[i].PrimaryArtistName, album: service[i].TypeAlbumName, lyrics: service[i].Lyrics}).toString().replace("insert", 'insert ignore'));
但它不起作用

更新: 如果我加上

.then(function (res) {
 console.log("res", res);// or another code
 });

但是它的方法正确吗?

在knex API中有一个正式支持这一点的请求正在进行中。我希望它可以准备到下一个版本

您永远不应该使用.toString来构建查询,因为它可能很容易为您的代码留下sql注入漏洞,尤其是在插入时

一开始它什么都没做,因为您从未触发过查询

目前,您可以通过以下方式实现相同的更安全的方法:

const query = knex('music')
  .insert({
    title: service[i].Title, 
    author: service[i].PrimaryArtistName, 
    album: service[i].TypeAlbumName, 
    lyrics: service[i].Lyrics
  }).toSQL();

const sql = query.sql.replace("insert", 'insert ignore');
knex.raw(sql, query.bindings).then(() => console.log('insert is ready'));