标签: node-mysql

Javascript 函数不返回数据 - Node-MySQL

目前在服务器上使用 NodeJS、Express、Socket.io 和 node-mysql。目前,服务器上的其中一项功能出现问题,根本不返回任何数据。我在我的尽头机智试图弄清楚这一点。

功能代码;

它应该返回“c”,但不起作用。console.log 实际上显示了 ID 和用户名。

function LOGIN_USER(a,b) {
    // a    = username
    // b    = password
    var c = [];
    connection.query("SELECT ID FROM GAME_PLAYER WHERE USR = '" + a + "' AND PWD = '" + b + "'", function(err,rows,field) {
        if (err) throw err;

            for (var i in rows) {
                c.ID = rows[i].ID;
                c.USR = a;
            }
            console.log(c.ID + " " + c.USR);
            return c;
    });

}
Run Code Online (Sandbox Code Playgroud)

其他代码。

socket.on('login user', function(data) {
        var c; …
Run Code Online (Sandbox Code Playgroud)

javascript function node.js socket.io node-mysql

1
推荐指数
1
解决办法
2096
查看次数

knex.js:orWhere 后跟多个 where 的组合

我正在使用 knex.js 编写查询,但我被 orWhere 困住了。

我需要这样的查询:

select 
    count(*) 
from 
    `Project` 
where 
    `Project`.`createdAt` >= '2019-11-12' 
and 
    `Project`.`createdAt` <= '2020-11-19' 
and 
    ((`Project`.`productType` = 1) 
or 
    (`Project`.`productType` = 2))
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,这就是我得到的:

select 
    count(*) 
from 
    `Project` 
where 
    `Project`.`createdAt` >= '2019-11-12' 
and 
    `Project`.`createdAt` <= '2020-11-19' 
or 
    (`Project`.`productType` = 1) 
or 
    (`Project`.`productType` = 2)
Run Code Online (Sandbox Code Playgroud)

or请注意,我想要用两个 'and来代替第一个or

这是代码:

 builder.count('*')
.from('Project')
.where('Project.createdAt', '>=', '2019-11-12')
.where('Project.createdAt', '<=', '2019-11-19')
.orWhere({'Project.productType': 1})
.orWhere({'Project.productType': 2})
Run Code Online (Sandbox Code Playgroud)

将不胜感激任何帮助

mysql node.js node-mysql knex.js

1
推荐指数
1
解决办法
5819
查看次数

Node.js和全局MySQL连接OBJ

我是Node.js的初学者,可以将MySQL用作全局变量吗?

我有一个db_helper.js,其中包含以下代码:

global.client = require('mysql').createConnection({
    user: '__mysqluser__',
    password: '__mysqlpass__',
    database: '__mysqldb__',
    timezone: '-03:00'
});
global.client.connect();
Run Code Online (Sandbox Code Playgroud)

在我的main.js上,我只是做一个:

require('db_helper');
Run Code Online (Sandbox Code Playgroud)

然后在其他js文件上,每当我需要更新或选择时,我只需调用:

global.client(query, data);
Run Code Online (Sandbox Code Playgroud)

我还没有看到这样的代码,但是它可以按预期工作,但是在重新加载页面时,我有时会遇到随机崩溃。

这样使用可以吗?我的崩溃与我连接到数据库的方式有关吗?

我认为这是相关的,因为崩溃发生时是因为MySQL无法返回数据,但解析结果时发生了崩溃,例如:

global.client.query(query, function(err, results, fields) {
   if (err) throw err;
   if (results && Object.prototype.toString.call(results) === '[object Array]') {
      var j = result[0].data; 
   }
}
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,var j具有我期望的值,但是当节点崩溃时,尽管它以前检查过(结果)一致性,但该var返回空。节点崩溃说:

result[0].data is undefined
Run Code Online (Sandbox Code Playgroud)

谢谢。

编辑:每当服务器上更新客户端js文件时,都会发生崩溃。(对.js文件进行本地编辑并通过FTP上传服务器后),为什么?

node.js socket.io node-mysql

0
推荐指数
1
解决办法
2365
查看次数

node.js node-mysql查询不起作用

查询数据库时,我收到此错误:

TypeError: Cannot call method 'query' of undefined
    at Object.<anonymous> (/home/nodeuser/myapp_node/index.js:51:17)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:901:3
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像:

var mysql = require('mysql');
var mysqlConnection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '',
  database : 'carousel',
  debug : true,
}).connect(function(err) {
    if ( !err ) {
        console.log("Connected to MySQL");
    } else if ( err ) {
        console.log(err);
    }
});


var userId = 23

mysqlConnection.query('SELECT …
Run Code Online (Sandbox Code Playgroud)

node.js node-mysql

0
推荐指数
1
解决办法
7467
查看次数

node-mysql 转义查询值 - 长度未知的数组

我使用 node.js 和模块 node-mysql 连接到 mySQL 服务器。但是,当我尝试在查询中转义数组时遇到了一些问题。这是我的代码:

connection.query("select * from table where id in (?)", [1, 3, 5], function(err, res) {
    ...
});
Run Code Online (Sandbox Code Playgroud)

上面的查询是select * from table where id in (1),这不是我的期望。

正如文件所说:

Arrays are turned into list, e.g. ['a', 'b'] turns into 'a', 'b'

我知道select * from table where id in (?,?,?)有效。问题是,如果我有一个长度未知的数组,我该怎么办?

javascript node.js node-mysql

0
推荐指数
1
解决办法
1306
查看次数

错误:ER_PARSE_ERROR:您的SQL语法中有错误; 查看与MySQL服务器版本对应的手册

我正在尝试使用从NPM下载的"mysql"模块将一些数据从Node JS发送到MySQL.

connection.beginTransaction(function(err) {
        if (err) { throw err }
        connection.query(sq, function (error, result) {
              if (error) {
            //return connection.rollback(function() {
            throw err
          //})
          } else {
            console.log('data is inserted ... ' + new Date())
          }
        })
Run Code Online (Sandbox Code Playgroud)

我的查询即sq是一些类似的东西..

INSERT INTO archlb_sales(fiscalYear, fiscalQuarterID, fiscalPeriodID, fiscalWeekID, geo, theater, area, operation, region, country, salesAgen
tName, emailID, arch, technology, subTechnology, tms3, productFamily, scms, totalSales, agentType, salesAgentnumber, softBookingsNet) values ('
2017', '2017Q1', '201701', '2017014', 'Americas', 'Americas-MISCL2', 'Americas-MISCL3', 'Americas-MISCL4', 'Americas-MISCL5', 'UNKNOWN', 'G2C A
djustment Agent', 'UNKNOWN' …
Run Code Online (Sandbox Code Playgroud)

mysql node.js node-mysql

0
推荐指数
1
解决办法
3804
查看次数

将JSON对象转换为数组?阅读说明

我的服务器根据请求,从节点mysql查询服务JSON,但只有名称行.例:

{
"Name": "Charles"
}, etc. 
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得Name的值并将其放入数组中?说我有这个,

  [
 {
  "Name": "Charles"
 },
 {
  "Name": "Alex"
 }
  ]
Run Code Online (Sandbox Code Playgroud)

我怎么能把查尔斯和亚历克斯变成阵列?

喜欢:

Names = ["Charles", "Alex]? 
Run Code Online (Sandbox Code Playgroud)

javascript arrays json node.js node-mysql

0
推荐指数
1
解决办法
5362
查看次数

未初始化在 Node.js 上连接到 MySQL

我无法连接到 MySQL 数据库。我在谷歌上搜索了一些解决方案,但似乎没有一个有效,或者我可能还没有理解它们。这是设置:

let express = require("express");
let mysql      = require("mysql");
let http = require("http");

let app  = express();
http.createServer(app).listen(8000, function() {
    console.log("Listening on http://localhost:" + port)
});

var connection = mysql.createConnection({
    host: "127.0.0.1",
    user: "root",
    password: process.env.DB_PASSWORD,
    database: "users",
    port: 8000
});

connection.connect();

connection.query("SELECT * FROM user", function(err, rows, fields)
{
    if (err) {
        console.error("error connecting: " + err.stack);
        return;
    }

    console.log(rows[0]);
});

connection.end();
Run Code Online (Sandbox Code Playgroud)

尝试与“socketPath”和另一个端口建立连接,但它们都返回错误:

Error: connect ECONNREFUSED 127.0.0.1:3306
at Object.exports._errnoException (util.js:1034:11)
at exports._exceptionWithHostPort (util.js:1057:20)
at TCPConnectWrap.afterConnect [as oncomplete] …
Run Code Online (Sandbox Code Playgroud)

javascript mysql node.js node-mysql

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

node-mysql ×8

node.js ×8

javascript ×4

mysql ×3

socket.io ×2

arrays ×1

function ×1

json ×1

knex.js ×1