Node.js 节点mysql回调不是一个函数

Node.js 节点mysql回调不是一个函数,node.js,express,node-mysql,Node.js,Express,Node Mysql,因此,我一直在网站上搜索一个解决方案,发现一些以前对用户有效的方法,并试图复制它是如何完成的,只是为了测试使用回调函数返回查询结果是否有效,但我遇到了一些问题。这是我的密码 dbfunctions.js const connection = require('../helpers/connection'); function getUserInfo(userID, dynamicField, callback) { var query = connection.query(

因此,我一直在网站上搜索一个解决方案,发现一些以前对用户有效的方法,并试图复制它是如何完成的,只是为了测试使用回调函数返回查询结果是否有效,但我遇到了一些问题。这是我的密码

dbfunctions.js

   const connection = require('../helpers/connection');

   function getUserInfo(userID, dynamicField, callback) {
    var query = connection.query("SELECT * FROM subgutter WHERE name = 'random'");
    query.on('result', function(row) {
        callback(null, "row.dynamicField");
    });
  };

  module.exports = getUserInfo();
const express = require('express');
const router = express.Router();
const connection = require('../helpers/connection');
const dbfunctions = require('../helpers/dbfunctions.js');

 dbfunctions.getUserInfo(8, "test", function(err, result) {
    console.log(err || result);
});
g.js

   const connection = require('../helpers/connection');

   function getUserInfo(userID, dynamicField, callback) {
    var query = connection.query("SELECT * FROM subgutter WHERE name = 'random'");
    query.on('result', function(row) {
        callback(null, "row.dynamicField");
    });
  };

  module.exports = getUserInfo();
const express = require('express');
const router = express.Router();
const connection = require('../helpers/connection');
const dbfunctions = require('../helpers/dbfunctions.js');

 dbfunctions.getUserInfo(8, "test", function(err, result) {
    console.log(err || result);
});
这是给我的 在dbfunctions.js中,回调不是函数


如果有人能告诉我如何改进这个问题,我不知道为什么会有反对票,我将不胜感激。您必须将
getUserInfo
导出为
module.exports.getUserInfo=getUserInfo
module.exports={getUserInfo:getUserInfo}
。在本例中,module.exports是getUserInfo()的结果(无参数调用),这会引发错误。

您必须将
getUserInfo
导出为
module.exports.getUserInfo=getUserInfo
module.exports={getUserInfo:getUserInfo}
。在您的例子中,module.exports是getUserInfo()的结果(无参数调用),这会引发错误。

检查结果上的
事件触发器中是否未定义回调。是,它未定义,你知道这是为什么吗?检查回调是否在结果上的
事件触发器中未定义。是的,它未定义,你知道这是为什么吗?这是可行的,但我有一个后续问题。有没有一种方法可以将回调结果设置为一个变量,而不使该变量成为全局变量<代码>让gutterId=null;gutterNameToId(“随机”,函数(结果){gutterId=result;})如果在给定范围内定义变量,则只能对更高范围进行访问。在您的示例中,gutterId是全局的,但您可以执行
函数(result){let gutterId=result;})
并在回调函数中处理数据。有没有一种方法可以将回调结果设置为一个变量,而不使该变量成为全局变量<代码>让gutterId=null;gutterNameToId(“随机”,函数(结果){gutterId=result;})如果在给定范围内定义变量,则只能对更高范围进行访问。在您的示例中,gutterId是全局的,但您可以执行
函数(result){let gutterId=result;})
并在回调函数中处理数据。