![](/img/trans.png)
[英]Why do I get "... is not a function at HTMLButtonElement" error?
[英]Why do I get “is not a function” error?
我想为服务器应用程序编写测试类。 我需要将路由器重构为控制器架构。 我根据控制器的返回值返回函数。 但是在我的路由器上,我看到了错误。 你有什么主意吗? 我要经过哪一点?
控制器:
const express = require('express');
const controller = (Project) => {
const projectMidlleware = require('../middleware/v1/projectMiddleware')(Project)
const put = (req, res, next) => {
projectMidlleware.create(req.query.name, (project) => {
res.status(200).send(project.api_key);
next();
});
}
const findProject = (req, res, next) => {
const apikey = req.headers["s-apikey"] || req.query.apikey || req.body.apikey;
projectMidlleware.findByApikey(apikey, (err, project) => {
if (err) {
next({
message: err.message,
code: 500
});
return;
}
req.body.project = project;
next();
});
}
return {
put,
findProject
}
}
module.exports = controller;
路由器:
const express = require("express");
const router = express.Router();
const projectController = require('../../controllers/projectController');
const profileController = require('../../controllers/profileController');
//return profiles for project
router.get("/",
projectController.findProject(),
profileController.get()
);
module.exports = router;
const projectController = require('../../controllers/projectController')();
您有一个函数返回带有方法的对象,但是您不调用该函数,并且方法存在于返回的对象上,而不是函数本身。 这种模式在节点中相当普遍,但是为了清楚起见,我实际上会这样做:
const projectController = require('../../controllers/projectController');
const controller = projectController();
然后使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.