错误:route.get()需要回调函数,但得到了一个[object undefined]node.js+sql

zzlelutf  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(392)

我想将router.get()从查询和sql查询中分离出来,但是当我将direct函数声明为router.get()函数的参数时,出现了这个错误。
用户.js

const express = require('express');
const router = express.Router();

const database = require('../queries/userQueries');

router.get('/users',database.getAllUsers);

module.exports = router;

用户查询.js

function getAllUsers(req, res, next) {
    res.locals.connection.query('SELECT * from usuarios', 
    function (error, results, fields) {
        if (error){ 
            res.send(error); 
            return; 
        }
        res.send(results);
    });
};

module.exports = getAllUsers;

错误:route.get()需要回调函数,但在route.(匿名函数)[as get](/home/antonio/achaiapi/node\u modules/express/lib/router/route.js:202:15)at function.proto.(匿名函数)[as get](/home/antonio/achaiapi/node\u modules/express/lib/router/index.js:510:19)at object(/home/antonio/achaiapi/api/routes/user.js:11:8)at module.\u编译(internal/modules/cjs/loader.js:678:30)at object.module.\u扩展..js(internal/modules/cjs/loader.js:689:10)at module.load(internal/modules/cjs/loader.js:589:32)at trymoduleload(internal/modules/cjs/loader.js:528:12)at function.module.\u加载(internal/modules/cjs/loader.js:520:3)at module.require(internal/modules/cjs/loader.js:626:17)at require(internal/modules/cjs/helpers.js:20:18)

z18hc3ub

z18hc3ub1#

getallusers已经是一个函数,因此可以直接使用。改变 router.get('/users',database.getAllUsers);router.get('/users',database); . 您还可以在中返回对象 userQueries.js 文件

wgmfuz8q

wgmfuz8q2#

你在分配函数 getAllUsers 把自己交给 module.exports ,而不是 module.exports . 所以,当你用 require ,解析为所述函数,而不是将该函数作为其属性之一的对象。
请尝试将导入的对象指定给表示函数的变量名:

const express = require('express');
const router = express.Router();

const getAllUsers = require('../queries/userQueries');

router.get('/users', getAllUsers);

module.exports = router;

你会用

const database = require('../queries/userQueries');
router.get('/users',database.getAllUsers);

当你的 userQueries.js 已将函数分配给 exports :

module.exports.getAllUsers = function getAllUsers( ...

相关问题