【问题标题】:How to use a separate router file in Node.js?如何在 Node.js 中使用单独的路由器文件?
【发布时间】:2019-01-23 10:17:01
【问题描述】:

这是我的控制器。

const catService = require('../service/catService');

var catController = {
    findAllCats: findAllCats
}

function findAllCats(req, res) {
    catService.findAllCats()
        .then((data) => { res.send(data); })
        .catch((error) => { console.log(error); });
}

module.exports = catController;

这是我的 routes.js

const express = require('express');
var router = express.Router();
var catController = require('../controller/catController');

router.get('/', catController.findAllCats);

module.exports = router;

这是主应用程序。

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

const { mongoose } = require('./config/db.js');
var { routes } = require('./routes/routes');

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

app.listen(3000, () => console.log('server started'));

app.use('/cats', routes);

问题是,'mongoose' 变量仍未使用(我在模型和 DAO 层中使用了 mongoose)。

但是,我收到此错误。 TypeError: Router.use() 需要一个中间件函数,但有一个未定义的

我知道我在路由部分遗漏了一些东西。有人能帮忙吗?我还必须保留路由器文件。

【问题讨论】:

  • 请完成您对 mongoose 相关问题的提问,如果有的话,请分享 /config/db.js 文件。 TypeError: Router.use() -> 下面的解决方案

标签: node.js routes mean-stack


【解决方案1】:

您可以在主应用程序中使用此代码。

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

    const { mongoose } = require('./config/db.js');
    // invalid import coz you are exporting router not object
    //var { routes } = require('./routes/routes');

    //require route like this
    var routes = require('./routes/routes');

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

    app.listen(3000, () => console.log('server started'));

    app.use('/cats', routes);

【讨论】:

  • 这行得通。我在两者之间感到困惑。非常感谢!
猜你喜欢
  • 2012-07-07
  • 2014-07-19
  • 1970-01-01
  • 2019-08-28
  • 2020-05-09
  • 1970-01-01
  • 2016-08-07
  • 1970-01-01
  • 2017-06-13
相关资源
最近更新 更多