【发布时间】:2018-09-12 05:29:32
【问题描述】:
我收到此 JavaScript 错误:
TypeError: 无法读取 null 的属性“标题”
代码如下:
Mds-iMac:cmscart imac$ nodemon app
[节点监视器] 1.11.0
【nodemon】随时重启,输入rs
[nodemon] 观看:.
[nodemon] 开始node app app.js
(node:2274) DeprecationWarning: open() 在 mongoose >= 4.11.0 中已弃用,请改用 openUri(),如果使用 connect() 或 createConnection(),请设置 useMongoClient 选项。见http://mongoosejs.com/docs/4.x/docs/connections.html#use-mongo-client
(node:2274) DeprecationWarning: Mongoose: mpromise (mongoose 的默认承诺库) 已弃用,请插入您自己的承诺库:http://mongoosejs.com/docs/promises.html
服务器在 3200 端口启动
Db.prototype.authenticate 方法将在下一个主要版本 3.x 中不再可用,因为 MongoDB 3.6 将仅允许对 admin db 中的用户进行身份验证,并且不再允许在套接字上使用多个凭据。请使用带有身份验证凭据的 MongoClient.connect 进行身份验证。
连接到 MongoDB
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] 应用程序崩溃 - 启动前等待文件更改...
page.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;
JavaScript 函数内部发生错误 title: page.title, above.
请帮帮我。
【问题讨论】:
标签: javascript node.js express