【问题标题】:How to solve "cannot read property 'push' of undefined in node.js如何解决“无法读取node.js中未定义的属性'push'
【发布时间】:2020-06-20 15:55:17
【问题描述】:

我有两个文件,一个是压缩文件夹中的“a.js”,另一个是压缩文件夹中的文件夹 b 中的 b.js,我正在使用 express 的路由。我是初学者,不知道如何解决这个问题错误,这是什么意思。我想在 a.js 中使用 b 文件。 a.js

```var express = require('express');
var path = require('path');
var app = express();
var route=require("./b/b");
app.use("/b",route);
app.get('/', function(req, res) {
    res.sendFile(path.join(__dirname + '/btn.html'));
});

app.post('/c', function (req, res,next) {
  console.log('ist MD');
  next();
});
app.post('/c', function (req, res,next) {
  console.log('snd MD');
  next();
});
app.post('/c', function (req, res,next) {
  console.log('third MD');

});

app.listen(3000);

这是 b.js

   const express=require("express"); 
const Router=express.Router; 
Router.get('/',(req,res)=>{ console.log("i am file b");
 });
 module.export=Router;

这是错误

C:\Users\Palwasha\Downloads\Compressed\b\node_modules\express\lib\router\index.js:502

this.stack.push(layer); ^

TypeError:无法读取未定义的属性“推送” 在 Function.route (C:\Users\Palwasha\Downloads\Compressed\b\node_modules\express\lib\router\index.js:502:14) 在 Function.proto.(匿名函数) [as get] (C:\Users\Palwasha\Downloads\Compressed\b\node_modules\express\lib\router\index.js:509:22) 在对象。 (C:\Users\Palwasha\Downloads\Compressed\b\b.js:3:9) 在 Module._compile (internal/modules/cjs/loader.js:778:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) 在 Module.load (internal/modules/cjs/loader.js:653:32) 在 tryModuleLoad (internal/modules/cjs/loader.js:593:12) 在 Function.Module._load (internal/modules/cjs/loader.js:585:3) 在 Module.require (internal/modules/cjs/loader.js:692:17) 在需要(内部/模块/cjs/helpers.js:25:18)

【问题讨论】:

标签: node.js


【解决方案1】:

您需要创建和引用Router实例

const express = require ('express');
const router = new express.Router();

router.get('/',(req,res)=>{ console.log("i am file b"); });

module.exports = router;

【讨论】:

  • 它解决了我的问题,但错误是什么意思?
  • @palo 内部路由器的存储处理程序在一个数组中,调用堆栈告诉您它正在尝试将路由推送到一个不存在的属性中(很可能是一个仅在路由器存在时才初始化的属性)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 2021-05-10
  • 2022-11-13
  • 2022-01-26
  • 2019-11-21
  • 2022-10-08
  • 2018-12-21
相关资源
最近更新 更多