throw er; / 未处理的'错误'事件 ^ TypeError: 不能读取null的属性'title'。

问题描述 投票:-1回答:1

[nodemon]开始 node app.js

(node:11472) DeprecationWarning: open() 在mongoose >= 4.11.0中已不适用,请使用 openUri() 代替,或设置 useMongoClient 选项,如果使用 connect()createConnection(). 见 http:/mongoosejs.comdocs4.xdocsconnections.html#use-mongo-client。 (node:11472)DeprecationWarning.Mongoose: mpromise (mongoose默认的承诺库)已被废弃,请插入你自己的承诺库来代替。Mongoose: mpromise (mongoose的默认承诺库)已被废弃,请插入你自己的承诺库。http:/mongoosejs.comdocspromises.html)。 服务器在3000端口启动 连接到MongoDB events.js:287 throw er; / 未处理的'错误'事件 ^。

TypeError.无法读取C:/Users/user/desktop/current/Nodejs-Coursefile-master/cmscart/routes/pages.js::null的属性'title'。不能读取C:Users/user/desktop/current/Nodejs-Course-file-master/cmscart/routes/pages.js:17:25处的null属性 "title"。(C:Users/user/desktop/current/Nodejs-Course-file-master/cmscart/node_modules/mongoose/lib/model.js:4093:16) at C:Users/user/desktop/current/Nodejs-Course-file-master/cmscart/node_modules/kareem/index. js:273:21 at C:\Users/user/desktop/current/Nodejs-Course-file-master/cmscart/node_modules/kareem\index.js:131:16 at processTicksAndRejections (internalprocesstask_queues.js:79:11) 在Function实例上发出'错误'事件 at: at model.Query. (C:\Users/user/desktop/current/Nodejs-Course-file-master/cmscart/nodeode_modules/mongoose/lib\model.js:4095:13) 在C:\Users/user/desktop/current/Nodejs-Course-file-master/cmscart/node_modules/kareem/index. js:273:21 at C:Users/user/desktop/current/Nodejs-Course-file-master/cmscart/node_modules/kareem\index.js:131:16 at processTicksAndRejections (internalprocesstask_queues.js:79:11)

代码如下所述。

var express = require('express');
var router = express.Router();
// Get Page model
var Page = require('../models/page');
//GET request
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 request 
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;
javascript node.js express mongoose ejs
1个回答
0
投票

你在使用''路由时是否会出现该错误?如果是的话,似乎你的mongo查询找不到任何合适的文档。你需要在找到页面的情况下才进行渲染。

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

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

        if (!page) 
            return console.log("No page found"); // DO WHAT YOU WANT

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

});
© www.soinside.com 2019 - 2024. All rights reserved.