当前位置: 首页 > 知识库问答 >
问题:

TypeError:无法读取null的属性“title”

宰修能
2023-03-14

我收到以下JavaScript错误:

TypeError:无法读取null的属性“title”

代码如下:

mds-iMac: cmscart imac$nodemo app[nodemo] 1.11.0[nodemo]随时重启,输入rs[nodemo]观看:.[nodemo]启动节点appapp.js(node: 2274)DeprecationWarning:open()在猫鼬中被弃用

events.js:182
  throw er; // Unhandled 'error' event
  ^

TypeError: Cannot read property 'title' of null

at /Users/imac/Desktop/cmscart/routes/pages.js:17:24
at model.Query.<anonymous> (/Users/imac/Desktop/cmscart/node_modules/mongoose/lib/model.js:4074:16)
at /Users/imac/Desktop/cmscart/node_modules/kareem/index.js:273:21
at /Users/imac/Desktop/cmscart/node_modules/kareem/index.js:131:16
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)

[nodemon]应用程序崩溃-正在等待文件更改,然后再启动。。。

页面。js代码为:

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

// Get Page model
var Page = require('../models/page');

/*
 * GET /
 */
router.get('/', function (req, res) {

Page.findOne({slug: 'home'}, function (err, page) {
    if (err)
        console.log(err);

    res.render('index', {
        title: page.title,
        content: page.content
    });
});

});

/*
 * GET a page
 */
router.get('/:slug', function (req, res) {

var slug = req.params.slug;

Page.findOne({slug: slug}, function (err, page) {
    if (err)
        console.log(err);

    if (!page) {
        res.redirect('/');
    } else {
        res.render('index', {
            title: page.title,
            content: page.content
        });
    }
});


});

// Exports
module.exports = router; 

错误发生在上面title:page.title的JavaScript函数内部。

请帮帮我。

共有3个答案

卜昂熙
2023-03-14
if (err)
   console.log(err);

这是一个问题。当出现错误时,应返回http错误,然后退出函数,例如:

if (err) {
    console.log(err);
    res.statusCode = 500;
    res.end('error');
}

当出现错误时,页面变量将为null,这解释了引发的异常。

阴凯歌
2023-03-14

这意味着当

函数(err,page){

在页面的内部调用。findOne,页面参数没有标题属性。

(没有Page.findOne如何被使用的上下文,很难说如何修复它)

仰欣悦
2023-03-14
router.get('/edit-page/:slug', (req, res) => {
  Page.findOne({slug : req.params.slug}).then((page) => {
    if(!page) { //if page not exist in db
      return res.status(404).send('Page not found');
    }
    res.render('admin/edit_page', { //page  exist
      title: page.title,
      slug: page.slug,
      content: page.content,
      id: page._id
    });
  }).catch((e) => {//bad request 
    res.status(400).send(e);
  });
});

使用这段代码,它将工作的逻辑是相同的,但我已经处理的条件使用promise,它肯定对我有效。希望它能帮助你:)

 类似资料:
  • 问题内容: 我收到以下错误 未捕获的TypeError:无法读取null的属性’appendChild’ myRequest.onreadystatechange @ script.js:20 与我下面的代码 这是我的JavaScript文件 这是内容 这是一个简单文本文件的内容。 我在这里按照@Tejs的建议将脚本标签放在html的底部,但仍然出现此错误。 问题答案: 执行回调时,页面上没有ID

  • 问题内容: 我是ReactJS的新手,遇到一些问题。 我还了解了语法,它说以下代码具有相同的含义。 1。 2。 但是,第一种方法引发此错误 问题答案: YTSearch({key: API_KEY, term: ‘nba’}, function(videos) { this.setState({ videos }); }); 引发错误,因为在此回调内部并未引用函数本身的上下文,因此此处未定义。 在

  • React-Native: 0.57.1 react-nady-cli: 2.0.1节点: v8.11.3 npm: 5.6.0 巴别塔版本详情: “devDependencies”:“@babel/runtime”:“^7.0.0”,“babel jest”:“20.0.3”,“babel preset react native”:“^2.1.0”,“jest”:“20.0.4”,“react

  • 如果函数在组件中,那么一切都很好。如果我把它单独取出并导出到一个组件中,那么我会得到一个错误TypeError:不能读取未定义的属性(读取'reduce')

  • TypeError:无法读取应用程序上未定义的属性“collection”。在图层上发布(/home/niko/Desktop/opa/app.js:17:38)。在route的下一个(/home/niko/Desktop/opa/node_modules/express/lib/router/layer.js:95:5)中处理[as handle_request](/home/niko/Desk

  • 问题内容: 您好,我正在尝试将React-Router与Firebase配合使用。但这给了我这个错误。 无法读取null的属性“ props” 这正是代码,我正在使用我的react-router 向下代码在组件上作为loginpanel组件。 我的react路由器在main.jsx上声明,我的react-router看起来像这样。 问题答案: 在回调中,指针不再指向您的React组件。有很多方法可