Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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 Node.js-无法绑定多部分_Javascript_Node.js - Fatal编程技术网

Javascript Node.js-无法绑定多部分

Javascript Node.js-无法绑定多部分,javascript,node.js,Javascript,Node.js,我有一个错误(节点:1152)未处理PromisejectionWarning:未处理的承诺拒绝(拒绝id:3):RequestError:无法绑定多部分标识符“SC1.refb”。 在控制台日志中显示所有选择,但似乎是最后一个选择并给出错误 我的代码: return Promise.all(parts.map(function(part) { console.log("SELECT sc.scstamp, st.u_posic, st.fornec, st.forneced

我有一个错误
(节点:1152)未处理PromisejectionWarning:未处理的承诺拒绝(拒绝id:3):RequestError:无法绑定多部分标识符“SC1.refb”。

在控制台日志中显示所有选择,但似乎是最后一个选择并给出错误

我的代码:

return Promise.all(parts.map(function(part) {
          console.log("SELECT sc.scstamp, st.u_posic, st.fornec, st.fornecedor, sc.ref, sc.qtt, sc.design FROM sc INNER JOIN st  ON st.ref = sc.ref WHERE sc.refb = '"+kitRef+"' AND st.u_posic = '"+part.u_order+"'"+
          "UNION SELECT SC2.scstamp, st.u_posic, st.fornec, st.fornecedor, SC2.ref, SC2.qtt, SC2.design FROM sc AS SC1"+
          "INNER JOIN sc SC2 ON SC2.refb = SC1.ref INNER JOIN st  ON st.ref = SC2.ref WHERE SC1.refb = '"+kitRef+"' AND st.u_posic = '"+part.u_order+"'");
            return request.query("SELECT [sc].[scstamp], [st].[u_posic], [st].[fornec], [st].[fornecedor], [sc].[ref], [sc].[qtt], [sc].[design] FROM sc INNER JOIN st  ON st.ref = sc.ref WHERE sc.refb = '"+kitRef+"' AND st.u_posic = '"+part.u_order+"'"+
            "UNION SELECT [SC2].[scstamp], [st].[u_posic], [st].[fornec], [st].[fornecedor], [SC2].[ref], [SC2].[qtt], [SC2].[design] FROM sc AS SC1"+
            "INNER JOIN sc SC2 ON SC2.refb = SC1.ref INNER JOIN st  ON st.ref = SC2.ref WHERE SC1.refb = '"+kitRef+"' AND st.u_posic = '"+part.u_order+"'")
            .then(function(articles) {

                return {part:part, articles:articles};
            });
        }));
查询是可以的,因为如果我把它放在sql中,它会工作得很好


谢谢

您的SQL中似乎有一些空格被弄乱了,但这是您遇到的最小问题。

首先,始终在每个承诺上附加拒绝处理程序,否则您的应用程序将因错误而崩溃。例如:

坏的:

好:

也很好:

f().then(function (articles) { ... }).catch(function (error) { ... });
查看以下答案,了解其重要性:

其次,永远不要将字符串与SQL连接起来,否则会出现SQL注入漏洞。例如:

不良、不安全、易出错且难以维护:

connection.query(
  "SELECT * FROM player WHERE nick = '" + data.login + "' AND pass = '" + data.pass + "'",
  function (err, rows) {
    //...
  }
);
connection.query(
  "SELECT * FROM player WHERE nick = ? AND pass = ?",
  [data.login, data.pass],
  function (err, rows) {
    // ...
  }
);
良好、安全、坚固且易于维护:

connection.query(
  "SELECT * FROM player WHERE nick = '" + data.login + "' AND pass = '" + data.pass + "'",
  function (err, rows) {
    //...
  }
);
connection.query(
  "SELECT * FROM player WHERE nick = ? AND pass = ?",
  [data.login, data.pass],
  function (err, rows) {
    // ...
  }
);
有关更多详细信息,请参见这些答案:

演示问题的强制性漫画:


SQL中似乎有一些空格被弄乱了,但这是您遇到的最小问题。

首先,始终在每个承诺上附加拒绝处理程序,否则您的应用程序将因错误而崩溃。例如:

坏的:

好:

也很好:

f().then(function (articles) { ... }).catch(function (error) { ... });
查看以下答案,了解其重要性:

其次,永远不要将字符串与SQL连接起来,否则会出现SQL注入漏洞。例如:

不良、不安全、易出错且难以维护:

connection.query(
  "SELECT * FROM player WHERE nick = '" + data.login + "' AND pass = '" + data.pass + "'",
  function (err, rows) {
    //...
  }
);
connection.query(
  "SELECT * FROM player WHERE nick = ? AND pass = ?",
  [data.login, data.pass],
  function (err, rows) {
    // ...
  }
);
良好、安全、坚固且易于维护:

connection.query(
  "SELECT * FROM player WHERE nick = '" + data.login + "' AND pass = '" + data.pass + "'",
  function (err, rows) {
    //...
  }
);
connection.query(
  "SELECT * FROM player WHERE nick = ? AND pass = ?",
  [data.login, data.pass],
  function (err, rows) {
    // ...
  }
);
有关更多详细信息,请参见这些答案:

演示问题的强制性漫画:


添加一个
.catch(函数(e){console.log(e)})
链接在
之后。然后
给出关于SC1.ref和SC1.refb的错误。有什么问题@stecb@user3242861你能发布整个堆栈跟踪吗?它是查询中的一个空格。解决了的!多谢各位@stecb@user3242861您需要认真考虑下面关于SQL注入的建议,添加A<代码> .catch(函数(e){控制台.log(e)})< /代码>链接在<代码>之后。然后<代码>在SC1.RF和SC1.ReFB上给我错误。有什么问题@stecb@user3242861你能发布整个堆栈跟踪吗?它是查询中的一个空格。解决了的!多谢各位@stecb@user3242861你需要认真考虑下面关于SQL注入的建议