私が試しても、私はこのエラーを取り除くことはできませんし、私のアプリケーションでは、モンゴースモデルのインスタンスを作成するこれとほぼ同じように見えるし、すべて正常に動作します。MongoDB - ObjectIdへのキャストがパス "_id"で値 "作成"に失敗しました
CastError: Cast to ObjectId failed for value "create" at path "_id"
_id
についてこのエラーを投げかけているのは何ですか?私は_id
の値がMongooseによって自動的に生成されたという印象を受けました。投稿データにid
または_id
がないことを絶対に保証します。来るのはtitle
とdescription
です。
これは私のProject
スキーマです:
// Project Schema
var mongoose = require('mongoose');
var ProjectSchema = new mongoose.Schema({
title: String,
description: String
});
module.exports = mongoose.model('Project', ProjectSchema);
そして、これは私のポストルートです。簡潔にするためにコードを省略しました。私はsave
方法にcreate
方法を使用してから変更した場合
var express = require('express');
var router = express.Router();
var Project = require('../models/project');
router.post('/project/create', function(req, res, next) {
var data = {
title: req.body.title,
description: req.body.description
};
Project.create(data, function(err, docs) {
if (err) {
return next(err);
}
if (!docs) {
return res.send('Failed to create project');
}
res.send('Project created');
});
});
module.exports = router;
最後に、私はまだ同じエラーを取得します。
var project = new Project(data);
project.save(function(err) {
if (err) {
return next(err);
}
res.send('Project created');
});
おそらくタイプミスですが、 'Project'が必要ですか? – Matthematics
おっと、はい私のコードサンプルにそれを含めるのを忘れました。@Hypermatttを指摘してくれてありがとう – wavematt
あなたは 'mongoose'のどのバージョンを使用していますか? – Matthematics