gpt4 book ai didi

node.js - 在快速路由的 Controller 函数中访问 App.route 时,它​​不是一个函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:36:39 24 4
gpt4 key购买 nike

我正在尝试使用 NodeJS 创建一个简单的 API。

我计划将主要的 api.jsroute-definitions.jsroute-logic.js 放在自己单独的文件夹中,以便它们更加结构化和组织。

但是,当我在 route-definitions.js 中调用 app.route() 时,编译失败,并提示 app.route 不是函数。

server.js

  var express = require('express')
var api = require("./api/api.js");

app = express();
port = process.env.PORT || 3000;
app.use('/', api);

app.listen(port);

api.js

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

router.use('/read', require('./routes/route-definitions'));

module.exports = router;

route-definitions.js

'use strict';
module.exports = function(app) {

var operations = require('../controllers/route-logic.js')

//Route to check if a file with the same file name already exists
app.route('/getItems')
.post(operations.getItems);
}

当我尝试在本地运行 API 并调用/read/getItems 时,出现错误:

TypeError: app.route is not a function

我错过了什么?我对 Node 和 Express 相当陌生,但我知道我没有正确传递应用程序实例,或者它没有全局设置。

最佳答案

您可以通过在route-definitions.js中创建子路由器来解决该问题

var router = require('express').Router();
var operations = require('../controllers/route-logic.js');

router.post('/getItems', operations.getItems);

module.exports = router;

关于node.js - 在快速路由的 Controller 函数中访问 App.route 时,它​​不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54362052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com