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

时间:2018-04-03 00:57:03

标签: javascript node.js express

我收到此JavaScript错误:

  

TypeError:无法读取null

的属性'title'

以下是代码:

Mds-iMac:cmscart imac $ nodemon app [nodemon] 1.11.0 [nodemon]随时重启,输入rs [nodemon]正在观看: [nodemon]从node app app.js开始 (节点:2274)弃用警告:在{mongoose> = 4.11.0中弃用open(),而是使用openUri(),或者如果使用useMongoClient或{{则设置connect()选项1}}。见http://mongoosejs.com/docs/4.x/docs/connections.html#use-mongo-client (node:2274)DeprecationWarning:不推荐使用Mongoose:mpromise(mongoose的默认承诺库),而是插入你自己的promise库:http://mongoosejs.com/docs/promises.html 服务器在端口3200上启动 Db.prototype.authenticate方法将不再在下一个主要版本3.x中可用,因为MongoDB 3.6将仅允许对admin数据库中的用户进行身份验证,并且将不再允许套接字上的多个凭据。请使用带有身份验证凭据的MongoClient.connect进行身份验证。 连接到MongoDB

createConnection()

[nodemon] app崩溃 - 在开始之前等待文件更改...

page.js代码为:

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)

错误发生在JavaScript函数 title:page.title,上面。

请帮帮我。

3 个答案:

答案 0 :(得分:0)

这意味着什么时候

function (err, page) {

Page.findOne内部调用

page参数没有title的属性。

(没有Page.findOne如何使用的背景,很难说如何修复它)

答案 1 :(得分:0)

if (err)
   console.log(err);

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

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

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

答案 2 :(得分:0)

float

使用此代码,它将起作用的逻辑是相同的,但是我已经使用诺言对它肯定有效的条件进行了处理。希望对您有帮助:)