第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

跪求大神幫忙解決TypeError: Cannot read property 'save' of undefined

折騰了一個晚上,還是搞不定,body-parser已經(jīng)安裝了。mongodb也安裝好了,提交數(shù)據(jù)就出錯。其他功能正常。

(node:10084) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html

{ CastError: Cast to ObjectId failed for value "undefined" at path "_id" for model "Movie"

? ? at MongooseError.CastError (E:\webapp\imooc\node_modules\mongoose\lib\error\cast.js:26:11)

? ? at ObjectId.cast (E:\webapp\imooc\node_modules\mongoose\lib\schema\objectid.js:147:13)

? ? at ObjectId.castForQuery (E:\webapp\imooc\node_modules\mongoose\lib\schema\objectid.js:187:15)

? ? at cast (E:\webapp\imooc\node_modules\mongoose\lib\cast.js:229:32)

? ? at Query.cast (E:\webapp\imooc\node_modules\mongoose\lib\query.js:2752:12)

? ? at Query.findOne (E:\webapp\imooc\node_modules\mongoose\lib\query.js:1353:10)

? ? at E:\webapp\imooc\node_modules\mongoose\lib\query.js:2310:21

? ? at new Promise.ES6 (E:\webapp\imooc\node_modules\mongoose\lib\promise.js:45:3)

? ? at Query.exec (E:\webapp\imooc\node_modules\mongoose\lib\query.js:2304:17)

? ? at Function.findById (E:\webapp\imooc\schemas\movie.js:43:5)

? ? at E:\webapp\imooc\app.js:75:9

? ? at Layer.handle [as handle_request] (E:\webapp\imooc\node_modules\express\lib\router\layer.js:95:5)

? ? at next (E:\webapp\imooc\node_modules\express\lib\router\route.js:131:13)

? ? at Route.dispatch (E:\webapp\imooc\node_modules\express\lib\router\route.js:112:3)

? ? at Layer.handle [as handle_request] (E:\webapp\imooc\node_modules\express\lib\router\layer.js:95:5)

? ? at E:\webapp\imooc\node_modules\express\lib\router\index.js:277:22

? message: 'Cast to ObjectId failed for value "undefined" at path "_id" for model "Movie"',

? name: 'CastError',

? stringValue: '"undefined"',

? kind: 'ObjectId',

? value: 'undefined',

? path: '_id',

? reason: undefined,

? model:

? ?{ [Function: model]

? ? ?hooks: Kareem { _pres: {}, _posts: {} },

? ? ?base:

? ? ? Mongoose {

? ? ? ? connections: [Object],

? ? ? ? plugins: [],

? ? ? ? models: [Object],

? ? ? ? modelSchemas: [Object],

? ? ? ? options: [Object] },

? ? ?modelName: 'Movie',

? ? ?model: [Function: model],

? ? ?db:

? ? ? NativeConnection {

? ? ? ? base: [Object],

? ? ? ? collections: [Object],

? ? ? ? models: [Object],

? ? ? ? config: [Object],

? ? ? ? replica: false,






TypeError: Cannot read property 'save' of undefined

? ? at Movie.findById (E:\webapp\imooc\app.js:81:10)

? ? at E:\webapp\imooc\node_modules\mongoose\lib\query.js:2326:9

? ? at newTickHandler (E:\webapp\imooc\node_modules\mpromise\lib\promise.js:234:18)

? ? at _combinedTickCallback (internal/process/next_tick.js:67:7)

? ? at process._tickCallback (internal/process/next_tick.js:98:9)


正在回答

8 回答

原因在這里

if?(id?!==?'undefined')?{
????????Movie.findById(id,?function?(err,?movie)?{
????????????if?(err)?{
????????????????console.log(err);
????????????}?else?{
????????????????_movie?=?underscore.extend(movie,?movieObj);
????????????}
????????});
????}

這里的ID是從表單中讀取的 沒有輸入的話 是字符串的'undefined' 并非js中未賦值的變量值的關(guān)鍵字`undefined`。

是從http://cnodejs.org/topic/552a3a7ecd5ee87201ab1edc?得到的啟示 要求ID為Objectid,是因為id不符合導(dǎo)致的錯誤,檢查代碼發(fā)現(xiàn)undefined 未加引號。

表單數(shù)據(jù)在提交時 如下所示:

movie[_id]:undefined
move[title]:佛擋殺佛大是大非
move[doctor]:456645
move[country]:456645
move[year]:456645
move[poster]:456645
move[summary]:456645
move[flash]:456645
move[language]:456645


1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

依韻_宵音

寫代碼需要細(xì)心,不過犯錯很多的原因還是對這些東西不熟悉 熟悉了就不會犯這樣的錯誤了,或者說很容易排查這樣的錯誤。
2017-01-17 回復(fù) 有任何疑惑可以回復(fù)我~

這個想要弄得清楚,最好學(xué)一下后臺語言,如php了解表單數(shù)據(jù)是怎么提交給服務(wù)器端的。就能完全明白。區(qū)環(huán)

0 回復(fù) 有任何疑惑可以回復(fù)我~

if (id !== 'undefined' && id !== '')

應(yīng)該要這樣

0 回復(fù) 有任何疑惑可以回復(fù)我~

TypeError: Cannot read property 'save' of undefined
??? at E:\stq\stq\app.js:65:11
??? at E:\stq\stq\node_modules\mongoose\lib\query.js:2745:9
??? at tryCatcher (E:\stq\stq\node_modules\bluebird\js\release\util.js:16:23)
??? at Promise._settlePromiseFromHandler (E:\stq\stq\node_modules\bluebird\js\release
\promise.js:512:31)
??? at Promise._settlePromise (E:\stq\stq\node_modules\bluebird\js\release\promise.js
:569:18)
??? at Promise._settlePromise0 (E:\stq\stq\node_modules\bluebird\js\release\promise.j
s:614:10)
??? at Promise._settlePromises (E:\stq\stq\node_modules\bluebird\js\release\promise.j
s:689:18)
??? at Async._drainQueue (E:\stq\stq\node_modules\bluebird\js\release\async.js:133:16
)
??? at Async._drainQueues (E:\stq\stq\node_modules\bluebird\js\release\async.js:143:1
0)
??? at Immediate.Async.drainQueues (E:\stq\stq\node_modules\bluebird\js\release\async
.js:17:14)
??? at runCallback (timers.js:651:20)
??? at tryOnImmediate (timers.js:624:5)
??? at processImmediate [as _immediateCallback] (timers.js:596:5)

0 回復(fù) 有任何疑惑可以回復(fù)我~

為啥我有單引號也不行

0 回復(fù) 有任何疑惑可以回復(fù)我~

同求 相同的問題

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

青了蔥的老王

看樓上。。
2017-01-28 回復(fù) 有任何疑惑可以回復(fù)我~
//?admin?post?movie
app.post('/admin/movie/new',?function(req,?res)?{
????var?id?=?req.body.movie._id;
????var?movieObj?=?req.body.movie;
????var?_movie;
?
????if?(id?!==?undefined)?{
????????Movie.findById(id,?(err,movie)=>{
????????????if?(err)?{
????????????????console.log(err);
????????????}
?
????????????_movie?=?_.extend(movie,?movieObj);
????????????_movie.save(function?(err,?movie)?{
????????????????if?(err)?{
????????????????????console.log(err);
????????????????};
?
????????????????res.redirect('/movie/'?+?movie._id);
????????????})
????????})
????}
????else{
????????_movie?=?new?Movie({
????????????doctor:movieObj.doctor,
????????????title:movieObj.title,
????????????country:movieObj.country,
????????????language:movieObj.language,
????????????year:movieObj.year,
????????????poster:movieObj.poster,
????????????flash:movieObj.flash,
????????????summary:movieObj.summary
????????});
?
????????_movie.save(function(err,?movie)?{
????????????if?(err)?{
????????????????console.log(err);
????????????};
?
????????????res.redirect('/movie/'?+?movie._id);
????????});
????}
});

問題出在這段代碼里,找了半天,一句一句跟人家對,還是找不出毛病。。。懇請各位大哥大姐幫我看看問題在哪。。。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

青了蔥的老王

ar movieObj = req.body.movie; var _movie; if (id !== undefined) { undefined 加上單引號 =》 if (id !== 'undefined') 應(yīng)該就好了!
2017-01-28 回復(fù) 有任何疑惑可以回復(fù)我~

這是app.js 源碼

"use?strict";


var?express?=?require('express');
var?path?=?require('path')
var?mongoose?=?require('mongoose');
var?_?=?require('underscore');
var?Movie?=?require('./models/movie');
var?port?=?process.env.PORT?||?3000;
var?app?=?express();
var?bodyParser?=?require('body-parser');


mongoose.connect('mongodb://127.0.0.1:27017/imooc');
mongoose.connection.on('connected',?function?()?{
??console.log('Connection?success!');
});

app.set('views',?'./views/pages');
app.set('view?engine',?'jade');
app.use(bodyParser.urlencoded({?extende:?true}));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname,'./bower_components')));
app.use(express.static(path.join(__dirname,'./static')));
app.listen(port);

console.log('Imooc?started?on?port?'?+?port);


app.get('/',(req,res)=>{
	Movie.fetch(function(err,?movies)?{
		if?(err)?{
			console.log(err);
		}
??res.render('index',{
??????title:'MOMO?首頁',
??????movies:movies
??	})
??})
});

app.get('/movie/:id',(req,res)=>{
	var?id?=?req.params.id;
	Movie.findById(id,?(err,movie)=>{
	??res.render('detail',{
??????title:'Imooc'?+?movie.title,
??????movie:?movie
??	});
	});
});

app.get('/admin/movie',(req,res)=>{
??res.render('admin',{
??????title:'MOMO?后臺',
??????movie:{
????????doctor:'',
????????country:'',
????????title:'',
????????year:'',
????????poster:'',
????????language:'',
????????flash:'',
????????summary:'',
??????}
??})
});

//?admin?post?movie
app.post('/admin/movie/new',?function(req,?res)?{
	var?id?=?req.body.movie._id;
	var?movieObj?=?req.body.movie;
	var?_movie;

	if?(id?!==?undefined)?{
		Movie.findById(id,?(err,movie)=>{
			if?(err)?{
				console.log(err);
			}

			_movie?=?_.extend(movie,?movieObj);
			_movie.save(function?(err,?movie)?{
				if?(err)?{
					console.log(err);
				};

				res.redirect('/movie/'?+?movie._id);
			})
		})
	}
	else{
		_movie?=?new?Movie({
			doctor:movieObj.doctor,
			title:movieObj.title,
			country:movieObj.country,
			language:movieObj.language,
			year:movieObj.year,
			poster:movieObj.poster,
			flash:movieObj.flash,
			summary:movieObj.summary
		});

		_movie.save(function(err,?movie)?{
			if?(err)?{
				console.log(err);
			};

			res.redirect('/movie/'?+?movie._id);
		});
	}
});
//?admin?list
app.get('/admin/list',(req,res)=>{
	Movie.fetch(function(err,?movies)?{
		if?(err)?{
			console.log(err);
		}
??res.render('list',{
??????title:'Imooc?電影列表頁',
??????movies:?movies
??	})
	});
});

//?admin?update?movie
app.get('/admin/update/:id',(req,?res)=>{
	var?id?=?req.params.id;

	if?(id)?{
		Movie.findById(id,(err,movie)=>{
			res.render('admin',{
				title:?'Imooc?后臺更新頁',
				movie:?movie
			});
		});
	}
});


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
node+mongodb 建站攻略(一期)
  • 參與學(xué)習(xí)       91828    人
  • 解答問題       921    個

帶你完整實現(xiàn)一個從前端到后端的項目,初中級前端開發(fā)工程師必學(xué)課程

進(jìn)入課程

跪求大神幫忙解決TypeError: Cannot read property 'save' of undefined

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號