我的代码如下所示:

应用程序.js

const app = express();
const itemsRouter = require('./routes/items.js');

app.use(bodyParser.urlencoded({
    extended: true
}));

app.use('/items', itemsRouter);

项目.js
const router = require('express').router;

router.get('/itemTest', (req, res) => {
    res.json({
        sucess: true
    });

    console.log(`the parametrs are ${req.body.item_name}  ${req.body.item_post}`);
});

module.exports = router;

但不知何故,我无法让路由器工作,它说无法读取未定义的属性“get”。

错误堆栈如下所示:
TypeError: Cannot read property 'get' of undefined
    at Object.<anonymous> (C:\Users\anand\quFlipApi\routes\items.js:5:7)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (C:\Users\anand\quFlipApi\app.js:33:19)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:394:7)

最佳答案

这里有两个问题:

  • express.Router 而不是 express.router
  • 您需要创建 express.Router 的新实例(例如 var router = new express.Router() ),而不是尝试将构造函数直接用作实例。
  • 关于node.js - 无法读取快速路由器中未定义的 'get' 属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43845431/

    10-16 18:42