如何修复 Nodejs 中的“无法读取未定义的属性推送”错误?

2024-04-10

我编写了一个简单的应用程序来学习 Nodejs,但是当我在 cmd 中运行“nodemon index.js”时出现此错误 类型错误:无法读取未定义的属性“push” 应用程序崩溃 - 启动前等待文件更改...

我已遵循 udemy 课程中的所有说明来学习 Nodejs 当我将文件分成两个文件index.js和genredes.js时,我遇到了这个问题

流派.js

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

//simple data 
const genres = [{
        id: 1,
        name: 'course1'
    },
    {
        id: 2,
        name: 'course2'
    },
    {
        id: 3,
        name: 'course3'
    }
];

//////////////////////////////////////////////////////////////////////
/////////////////////////////////// Get //////////////////////////////
//////////////////////////////////////////////////////////////////////


router.get('/', (req, res) => {
    res.send(genres);
});

router.get('/:id', (req, res) => {

    const genre = genres.find(c => c.id ===
        parseInt(req.params.id)); //req.params.id return string 
    if (!genre)
        return res.status(404).send('The course is not found...');

    res.send(genre);

    res.send(req.params.id);
});

router.get('/:year/:month', (req, res) => {
    res.send(req.params);
});

router.post('/', (req, res) => {
    const {
        error
    } = validategenre(req.body);
    if (error)
        return res.status(400).send(error.details[0].message);

    const genre = {
        id: genres.length + 1,
        name: req.body.name
    }
    genres.push(genre);
    res.send(genre);
});

router.put('/:id', (req, res) => {

    const genre = genres.find(c => c.id === parseInt(req.params.id));
    if (!genre)
        return res.status(404).send('The course does not exist !!! ');

    const result = validategenre(req.body);
    if (result.error)
        return res.status(400).send(result.error.details[0].message);


    genre.name = req.body.name;
    res.send(genre);

});

function validategenre(genre) {

    const schema = {
        name: Joi.string().min(3).required()
    };
    return Joi.validate(genre, schema);

}

module.exports = router;

index.js

const Joi = require('joi');
const genres = require('./routes/genres');
const express = require('express');
const app = express();


app.use(express.json());
app.use('/api/genres', genres);
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Listining on port ${port}...`));

在genre.is中,你应该导入

const router = express.Router();

代替

const router = express.Router;

另外,您提到的错误可能来自任何push在您的代码中(没有任何更多信息),请下次指定堆栈跟踪:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复 Nodejs 中的“无法读取未定义的属性推送”错误? 的相关文章

  • 将声音添加到标记数组 - 谷歌地图 javascript

    我是新来的 所以我知道我没有任何可信度 我是一名艺术家 对编程很陌生 所以我理解是否没有人会承担这个任务 我发布这篇文章是因为这是一个简单的问题 S 这是创建多个标记的代码 主要来自谷歌开发者网站 它工作正常并为每个标记创建一个自定义图标
  • 如何全局公开 es6 模块

    我需要编写一个可在全局窗口上使用的模块 我使用 es6 创建模块 我定义的每个类都有它自己的文件 我正在使用 webpack 来 babelify 并捆绑这些类 我的模块的入口点也是包含要公开的全局的文件 我尝试了各种方法来实现这一点 包括
  • Fabric JS html 5 图像弯曲选项

    我想用html5工具制作图像曲线 我使用 Fabric js 作为 html5 画布工具 请指导我如何在杯子 玻璃 圆柱形或圆形产品等图像上制作弯曲图像 参考号图片如下 http vsdemo cwwws com Images Produc
  • Chart.JS 工具提示回调标签和标题 (v3.5)

    请注意 v2 有很多答案 这是 v3 的 我正在尝试设置工具提示label and title对于圆环图 Code Create the donut chart donut new Chart questions positivity do
  • Firebase 的云功能:序列化 Promise

    在 onWrite 处理程序中 我想执行多次读取 操作一些数据 然后存储它 我对 Promise 概念还很陌生 关于 Firebase 在完成之前不会终止我的查询 我对以下 Promise 处理是否安全 exports test funct
  • 电话链接在 iframe 中不起作用,但在 iOS 9 Web 中的 div 中起作用。如何使电话链接在 iOS 9 safari 中正常工作?

    您好 我正在尝试 iOS9 中 iframe 内的电话链接 iOS9 中的 safari 中无法打开手机应用程序 当我在里面尝试相同的链接时 它就在那里工作 我正在尝试下面的锚标记 将此代码放入 div 中时会打开手机应用程序 但同样的代码
  • 在 Chrome 中使用 window.open 打开本地 HTML 文件

    我想通过 Javascript 打开本地 HTML 文件 使用 window open file C Users wins Desktop exclusiveWordpress html mywindow 但它会打开一个带有空白页面的新窗口
  • 跨多个子域的 WebAuthn

    我正在尝试在我的网站上设置 WebAuthn 身份验证流程 但遇到了问题 我希望我的用户能够在主网站 www domain com 上注册他们的设备 以便可以通过用户设置轻松访问 身份验证本身通过 IdP sso domain com 在不
  • IE8 中 JavaScript 日期未定义/NaN

    我用它来测试日期输入是否距今天的日期少于 7 天 它适用于除 IE9 之外的所有浏览器 var today new Date
  • 需要帮助在 D3.js 条形图中将 x 轴刻度与条形对齐

    我有一个可用的线性条形图D3 js http d3js org 它也有基于时间的 x 轴 条形图绑定到计数属性 而轴绑定到日期属性 轴上的刻度未与条形对齐 知道如何将它们两者排列起来吗 这是 jsFiddle http jsfiddle n
  • Javascript `new` 运算符和原型

    假设我们创建一个名为 Shape 的函数 并在其原型上添加属性 name 和方法 toString var Shape function Shape prototype name Shape Shape prototype toString
  • 如何在外部 .js 文件中分离 .vue 组件的方法?

    我的组件留下了许多行代码 因此我决定将这些方法放在一个名为functions js 的单独文件中 我无法调用这些方法 我试过这个 函数 js function sendList function getLists function dele
  • Javascript,检测触摸设备

    我正在使用此函数来检测设备是否是触摸设备 function is touch device return ontouchstart in window onmsgesturechange in window 从这里得到这个功能 使用 Jav
  • Ionic 框架:创建项目时 Ionic 构建失败 (v4.12.0)

    I have ionic安装在我的系统中 当我跑步时ionic run app tabs它安装了所有npm包 但随后提示符变为 Downloading binary from https github com sass node sass
  • 脚本内的角度范围

    我们可以使用脚本标记内范围中定义的角度变量 如下所示 HTML 代码 div div JS CODE function AngularCtrl scope scope user name John 我只是得到 scope 未定义 有人可以帮
  • 有人可以解释以下涉及 Javascript 对象的双重赋值吗?

    这个问题在这里已经有答案了 var foo n 1 var bar foo foo x foo n 2 console log foo n 2 console log bar n 1 x n 2 有人能解释一下第三行发生了什么吗 线路foo
  • Node Express 和 csurf - 403(禁止)无效的 csrf 令牌

    浏览并尝试了我在这里和其他地方通过谷歌搜索能找到的所有东西 但我就是无法克服这一点 我正在使用 Node Express EJS 并尝试在使用 jQuery ajax 发布的表单上使用 csurf 无论我如何配置 csurf 我都会收到 4
  • 如何避免JQuery和Prototype之间的冲突

    如果一个页面同时具有 JQuery 和 Prototype 那么我就会遇到冲突 有一个选项可以禁用 JQuery 的 符号 因此不会发生冲突 但是我必须使用关键字 JQuery 而不是 我想知道Prototype是否有任何选项可以解决这个冲
  • 类型错误:无法读取未定义的属性“_id”

    我在将文档保存到名为的集合的简单发布请求中收到错误 TypeError 无法读取未定义的属性 id books 我的有效负载如下所示 name practical view author DN location room 50 而我只是在做
  • 如何使用ajax从服务器接收返回的数据?

    基本上我有一个带有用户名文本框和提交按钮的表单 现在我想要的是 当用户在文本框中输入文本时 它应该获取文本框值并将用户名发送到服务器 以便服务器可以检查该用户名是否被任何其他用户占用 我可以将文本值发送到服务器 但我不知道如何接收回一些数据

随机推荐

  • 任意类型说明符上的 Defmethod?

    我想做的是 defgeneric fn x defmethod fn x integer 1 Positive integer defmethod fn x integer 1 Negative integer 我想要一个可以与任意类型说明
  • 在 SwiftUI 中,如何添加循环视频作为全屏背景图像?

    我有一个大约 10 秒长的视频 我想在我的一个 SwiftUI 视图中作为全屏背景图像循环播放 我怎样才能实现这个 第一个想法是与 Swift 合作import AVFoundation 但不确定这是否是正确的道路 您可以使用AV框架系列和
  • Chrome 在使用位置粘性/固定时会切断重影图像

    我正在尝试使用 HTML5 拖放position fixed从位于屏幕左侧固定位置的菜单中拖动元素 以下代码在 Safari 和 Firefox 中运行良好 但当我在 Chrome 中尝试时 滚动后 从拖放 API 生成的 幽灵 图像不可见
  • Leaflet.js:如何从地图中删除多个图层

    我正在使用 Leaflet js 制作地图 现在我想从地图中删除添加的图层 通过单击输入 按钮 所有选中的复选框将更改为未选中 并且所有相应的图层将从地图中删除 要从地图中删除图层 需要该图层的 ID 该 id 等于相应复选框的 id 这就
  • 如何使用 mysqli 准备好的语句绑定 N 个参数?

    在旧的 mysql 代码中 我有一个完美运行的查询 如下所示 questioncontent isset GET questioncontent GET questioncontent searchquestion questioncont
  • 如何检测用户何时成功完成php中文件的下载

    我有一个处理文件下载请求的 php 页面 我需要能够检测文件何时已成功下载 如何才能做到这一点 也许有一些方法可以检测该客户端 然后向服务器发送确认 Thanks 编辑 通过句柄 我的意思是该页面正在执行以下操作 file var www
  • Android - 应用程序安装在 SD 卡上时内部存储与外部存储

    我有一个可以下载大量内容的应用程序 用户之间有所不同 但可能是 200mb 到 1GB 或更多 目前 我将所有这些内容保存在外部存储上 因为这可能是空间最多的区域 例如 SD 卡 这在大多数情况下都可以正常工作 但在某些情况下这不一定是理想
  • Clojure 是否有命名私有函数的约定?

    当我在 Clojure 中定义私有函数时 我通常使用 前缀作为视觉指示符 表明该函数不能在我的命名空间之外使用 例如 defn name let formatter formatter yyyy MM dd HH mm ss SSSS fo
  • HTML5 push/replaceState 和 标签导致安全异常

    我有一个网站的测试版本 位于正常网站的子域中 例如 http test x com http test x com代替http x com http x com 我用标签将所有资源请求转换回原始域 在我实现 HTML5 Push repla
  • 对象或原始类型

    有人可以向我解释一下在 JAVA 中如何使用 Integer Boolean 等来代替它们的原始类型吗 我似乎无法理解他们提供的优势 它们似乎在处理空值时造成了不必要的问题 Thanks Boolean Integer Long 是对象 您
  • android ndk 未定义对方法的引用

    您好 很抱歉这篇长文章我正在尝试编译一些静态类 即 jsmn c json c 和 buf c 它们是我从下载的 jsmn json 库的一部分https github com alisdair jsmn example downloads
  • 如何使用spark-submit为Spark作业选择队列?

    有没有办法提供参数或设置来选择我希望运行 Spark submit 作业的队列 通过使用 queue 因此 火花提交作业的一个示例是 Spark submit master YARN conf Spark executor memory 4
  • Dash 数据表下载至 Excel

    我目前正在使用下面的脚本从我创建的破折号下载数据表 下载工作正常 但是当我在本地托管 Dash 并尝试通过另一个系统单击下载按钮时 文件正在主机上下载 而不是在用户计算机上下载 如果我的问题看起来很愚蠢 我深表歉意 因为我对 Dash 和
  • scala 中可以有命名常量吗?

    看起来 Java 中的注释需要常量 我想做 object ConfigStatics final val componentsToScan Array com example PropertySource ConfigStatics com
  • 由于 lambda 表达式,缩小失败

    当 ASP NET 捆绑程序尝试缩小以下脚本时 它会失败 Minification failed Returning unminified contents 164 59 60 run time error JS1195 Expected
  • 为什么改变 SO_RCVBUF 的值不起作用?

    我正在制作一个程序 它创建一个原始套接字以读取所有流量 在调用socket 和recvfrom 之间 最后一个在循环中从缓冲区中取出所有数据包 我等待了5秒 当我运行该程序时 我使用 hping3 命令以 更快的模式 以快速填充缓冲区 向我
  • ASP.Net MVC Ajax.BeginForm OnComplete 在 Razor 视图中传递 C# 参数

    我在 MVC c Razor 视图中有以下代码 string url Projects MonthRangesScriptsPartial using Ajax BeginForm MonthRanges Projects new id V
  • SQL Server 的 SELECT JOIN 语句导致的死锁

    当执行带有两个表的 JOIN 的 SELECT 语句时 SQL Server 似乎 分别锁定语句的两个表 例如通过像这样的查询 这 SELECT FROM table1 LEFT JOIN table2 ON table1 id table
  • 求 O(log n) 中值

    问题是我们如何找到整数值接收流的中位数 例如 对于 12 14 252 243 15 中位数是 15 O log N 其中 N 是值的数量 请注意 我们有一个整数值流 因此通过接收每个值 我们必须重新找到中位数 例子 Input media
  • 如何修复 Nodejs 中的“无法读取未定义的属性推送”错误?

    我编写了一个简单的应用程序来学习 Nodejs 但是当我在 cmd 中运行 nodemon index js 时出现此错误 类型错误 无法读取未定义的属性 push 应用程序崩溃 启动前等待文件更改 我已遵循 udemy 课程中的所有说明来