Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

奇怪的error “CastError: Cast to String failed for value”

$
0
0

设计api的时候遇到了一个奇怪的错误 代码如下:

	const mongoose = require('mongoose');
  	const Schema = mongoose.Schema;
  
  	const CategorySchema = new Schema({
		store : {type: String, required: true, unique: true},
		categories : [{
	 		parent : String,
	  		name : String,
		}],
  	}, {
		timestamps: false,
  	});
  	CategorySchema.index({store: 1});
  	module.exports = mongoose.model('Category', CategorySchema);

建模好了之后储存没问题,但是查询的时候就出现了如下错误

	(node:15444) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ValidationError: CastError: Cast to String failed for value "{ _id: 58dd019b1a06731b0990b878,
  	store: 'OZ-Mobile-trader',
  	categories: [],
  	__v: 0 }" at path "store"

查询语句如下:

	Category.findOne({store: 'OZ-Mobile-trader'}).exec().then(result => {
		console.log(result);
		return res.status(200).json({'message': result});
	}, err => next(err));

如果把‘OZ-Mobile-trader’换成数据库里没有的,就没有error,直接输出null,但是只要查询有的或者查询所有数据,result就输出不出来,直接出来上面的error message. 我也有建相似的数据模型,别的都没问题,只有这个不好用,希望有大神可以棒棒忙~ 谢谢大家


Viewing all articles
Browse latest Browse all 14821

Trending Articles