【问题标题】:Problems with the route-controller model in expressexpress 中路由控制器模型的问题
【发布时间】:2020-04-29 15:58:52
【问题描述】:

我在为我的路线创建驱动程序时遇到问题。由于某种原因,它无法识别 send() 属性。

这是我的路线代码:

const express = require('express');
const router = express.Router();
const Ctrl = require('../controllers/index');

/* GET home page. */
router.get('/', Ctrl.list());

module.exports = router;

这是我的控制器的代码:

const express = require('express');

Ctrl = {}

Ctrl.list = (req, res) => {
   res.send("sended");
}

module.exports = Ctrl;

当我使用不是箭头函数的传统函数时也会发生同样的情况。

另一方面,这是我的快速配置,其中配置的路由是:

const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
const helmet = require('helmet');

const indexRouter = require('./routes/index');
const usersRouter = require('./routes/users');

const app = express();
require('./database/config');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(helmet());

app.use('/', indexRouter);
app.use('/users', usersRouter);

module.exports = app;

我收到此错误:

E:\elarchivero\api\controllers\index.js:6 res.send("send"); ^

TypeError:无法读取未定义的属性“发送” 在 Object.Ctrl.list (E:\elarchivero\api\controllers\index.js:6:8) 在对象。 (E:\elarchivero\api\routes\index.js:6:22) 在 Module._compile (internal/modules/cjs/loader.js:959:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10) 在 Module.load (internal/modules/cjs/loader.js:815:32) 在 Function.Module._load (internal/modules/cjs/loader.js:727:14) 在 Module.require (internal/modules/cjs/loader.js:852:19) 在需要(内部/模块/cjs/helpers.js:74:18) 在对象。 (E:\elarchivero\api\app.js:7:21) 在 Module._compile (internal/modules/cjs/loader.js:959:30) [nodemon] 应用程序崩溃 - 在启动前等待文件更改...

【问题讨论】:

    标签: javascript node.js express model-view-controller


    【解决方案1】:

    您需要将路由器更改为函数引用而不是调用。

    router.get('/', Ctrl.list);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 2013-11-14
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 2016-08-08
      • 1970-01-01
      相关资源
      最近更新 更多