我收到此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,上面。
请帮帮我。
答案 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
使用此代码,它将起作用的逻辑是相同的,但是我已经使用诺言对它肯定有效的条件进行了处理。希望对您有帮助:)