javascript - 为什么在调用 api 时必须返回一个函数,而在express(KeystoneJs)中调用 View Controller 时则不需要返回函数?

标签 javascript node.js express keystonejs

在 Express 中,我的 View 代码必须遵循以下格式(我也使用 keystonejs CMS):

exports = module.exports = function(req, res) {
      // view code
}

但是,当我创建返回 json 的 api 时,我必须返回一个函数:

exports = module.exports = function() {
    return function(req, res) {
        // api code
    }
}

我可以通过正常路由以相同的方式调用两个端点,那么为什么我必须在 api 中返回一个函数,而不是在 View 代码中返回一个函数?

最佳答案

事实证明,这并非特定于 keystone。我的 API 路线是调用 Controller ,就像在接受参数的帖子上调用它一样。

帖子查看路线:

app.post('/home/:imgtype', routes.api.imgloader.uploadProfileImg(param));

在 http 正文中包含表单数据的 api 路由:

app.post('/postblurt', routes.api.blurtapi.postBlurt());

所以我所要做的就是删除 (),它执行函数并期望返回值。

app.post('/postblurt', routes.api.blurtapi.postBlurt);

我忽略了一件简单的事情:当使用参数调用路由时,您必须返回函数。

关于javascript - 为什么在调用 api 时必须返回一个函数,而在express(KeystoneJs)中调用 View Controller 时则不需要返回函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56530866/

相关文章:

javascript - 是否可以检查集合或子集合是否存在?

node.js - Nodejs - shasum 不匹配

javascript - 将页面从 ajax jquery 请求删除到另一个页面

javascript - 如何在 Oracle APEX 中使用多个数据 ID?

javascript - 将 Meteor 应用程序分为 2 个部分的最佳实践,一个部分用于着陆,另一个部分用于登录用户

node.js - 无法在express.js中获取正确的页面

node.js - Handlebars 缩小 HTML

node.js - 如何使用 Node js ( ibm_db ) 将数据插入到 db2

node.js - 错误 : Invalid version: "1.0" in node. js package.json 文件

javascript - 具有未封闭 block 的引导依赖性错误