我想将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)
2条答案
按热度按时间z18hc3ub1#
getallusers已经是一个函数,因此可以直接使用。改变
router.get('/users',database.getAllUsers);
至router.get('/users',database);
. 您还可以在中返回对象userQueries.js
文件wgmfuz8q2#
你在分配函数
getAllUsers
把自己交给module.exports
,而不是module.exports
. 所以,当你用require
,解析为所述函数,而不是将该函数作为其属性之一的对象。请尝试将导入的对象指定给表示函数的变量名:
你会用
当你的
userQueries.js
已将函数分配给exports
: