Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 &引用;错误:Route.get()需要一个回调函数,但得到了一个[object Undefined]”;执行多重导出时_Javascript_Node.js_Express_Export_Middleware - Fatal编程技术网

Javascript &引用;错误:Route.get()需要一个回调函数,但得到了一个[object Undefined]”;执行多重导出时

Javascript &引用;错误:Route.get()需要一个回调函数,但得到了一个[object Undefined]”;执行多重导出时,javascript,node.js,express,export,middleware,Javascript,Node.js,Express,Export,Middleware,我正在尝试导出中间件函数,以便其他类可以调用它 我做了一些谷歌搜索,但没有为我的案件工作 这是密码 auth.js isLoggedIn = (req, res, next) => { next(); } module.exports.isLoggedIn = isLoggedIn; module.exports = app => { }; profile.js const isLoggedIn = require('./auth').isLoggedIn; let pr

我正在尝试导出中间件函数,以便其他类可以调用它

我做了一些谷歌搜索,但没有为我的案件工作

这是密码

auth.js

isLoggedIn = (req, res, next) => {
  next();
}

module.exports.isLoggedIn = isLoggedIn;

module.exports = app => {
};

profile.js

const isLoggedIn = require('./auth').isLoggedIn;
let profile = [];
getAllProfile = (req, res) => {
    res.send(profile);
}

module.exports = (app) => {
    app.get('/all-profile',isLoggedIn, getAllProfile);

}

index.js

const express = require("express");
const bodyParser = require("body-parser");

const app = express();
app.use(bodyParser.json());

const port = process.env.PORT || 3000;
const server = app.listen(port, () => {
  const addr = server.address();
  console.log(`Server listening at ${port}`);
});


let auth = require("./src/auth");
auth(app);

let profile = require("./src/profile");
profile(app);
错误消息是

\node_modules\express\lib\router\route.js:202
        throw new Error(msg);
        ^

Error: Route.get() requires a callback function but got a [object Undefined]

我在这里做错了什么?

您正在覆盖您的
模块。使用此处的第二行导出

module.exports.isLoggedIn = isLoggedIn;

module.exports = app => {
};
因此,
.isLoggedIn
不再是您指定的新导出对象的属性。你可以改变顺序:

module.exports = app => {
};

module.exports.isLoggedIn = isLoggedIn;

通过这种方式,您可以定义一个新的
模块。首先导出
对象(恰好是函数对象),然后向新对象添加属性。

通过执行
module.exports=app