首页 > 解决方案 > 如何解决“无法读取node.js中未定义的属性'push'

问题描述

我有两个文件,一个是压缩文件夹中的“a.js”,另一个是压缩文件夹中的文件夹 b 中的 b.js,我正在使用 express 的路由。我是初学者,不知道如何解决此错误以及什么这是否意味着。我想在 a.js 中使用 b 文件。 一个.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.proto 处读取 Function.route (C:\Users\Palwasha\Downloads\Compressed\b\node_modules\express\lib\router\index.js:502:14) 处未定义的属性“推送”。匿名函数) [as get] (C:\Users\Palwasha\Downloads\Compressed\b\node_modules\express\lib\router\index.js:509:22) 在 Object. (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) 在 require (internal/modules/cjs/ helpers.js:25:18)

标签: node.js

解决方案


您需要创建和引用一个实例Router

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

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

module.exports = router;

推荐阅读