mongodbと関連付けるこれ
は基本的なプロセスの記録です。ビデオの時点はドキュメントとは異なるため、理解してから最新のドキュメントを見て操作することをお勧めします。基本的な考え方は変わりません。 。
おそらくそれだけです。昨日行われた追加を変更して、それをシミュレートしてみましょう。昨日は書き込まれたファイルであり、今日はそれをデータベースに関連付けます。
ここには興味深い場所があります。mongodbのidと_idの問題です。_id
は文字列を取得しますが、この文字列は
「asdasfagagas2112da」のようなもので、二重引用符が付いているため、通常の方法である彼に対処して削除できます。彼は二重引用符で囲んでいますが、もう一度idを試したので、idを扱いたくありません。ここで混乱していますか?それで私はその文書を見て、一目でそれがはっきりしました。
これは、次の2つの比較
です
。id :_id:
ここでは少し混乱するかもしれません。返される文字列はすべて文字列なので、違いは何ですか?
それで、req.queryの値を出力すると、突然、文字列自体。引用符を追加するのは間違っています。'"Asdasdasda11111"'、これはできません!
わかりました。コードに移動して、自分でコードを追加、削除、変更、確認、および記述します。私は多くのことを理解しているため、機能しません。
これはルーターの場所です。データベースを操作するには、APIを直接呼び出します。
var express = require('express')
var router = express.Router()
var Student = require('./student')
router.get('/student', function(req, res){
Student.find(function(err, students){
if(err){
return res.status(500).send('Server error.')
}
res.render('index.html', {
students
})
})
})
router.get('/student/new', function(req, res){
res.render('new.html')
})
//这里是添加数据,你要记得要new一个这个才能添加数据哦,req.body别忘记了,就是你提交的值
router.post('/student/new', function(req, res){
new Student(req.body).save(function(err){
if(err){
return res.status(500).send('Server error.')
}
res.redirect('/student')
})
})
router.get('/student/edit', function(req, res){
Student.findById(req.query.id, function(err,student){
if(err){
console.log(err)
return res.status(500).send('Server error.')
}
res.render('edit.html', {
student
})
})
})
router.post('/student/edit', function(req, res){
Student.findByIdAndUpdate(req.body.id, req.body,function(err){
if(err){
console.log(err)
return res.status(500).send('Server error.')
}
res.redirect('/student')
})
})
router.get('/student/delete', function(req, res){
Student.deleteOne(req.body.id, req.body,function(err){
if(err){
console.log(err)
return res.status(500).send('Server error.')
}
res.redirect('/student')
})
})
module.exports = router
これは、昨日のファイルを置き換えるために使用されます。昨日はファイルを操作し、今日はデータベースを操作しました。ここでデータベースに接続します。
var mongoose = require('mongoose')
// 拿到架构,也就是结构
var Schema = mongoose.Schema
//连接数据库 该数据库不许哟啊存在,当你插入第一条数据后会自动创建出来
mongoose.connect('mongodb://localhost/itCast')
// 设计集合结构
var studentSchema = new Schema({
name :{
type: String,
required: true
},
gender :{
type: Number,
default: 0,
enum: [0, 1] // 枚举 约束只能是0,1
},
age :{
type: Number
},
hobbies :{
type: String
}
})
//导出模型构造函数 发布为模型就可以用了
// 这个集合没有会被自动创建出来,会变成students哦,前面有说到 (突然想起一句话:得不到就毁到,hh)
module.exports = mongoose.model('Student', studentSchema)
データベースを変更してからインターフェースを更新する形式を理解します。APIを確認するのは簡単ではありませんが、これらのアイデアは理解する価値があります。突然、ログインと登録のインターフェースになるのは簡単すぎると感じます。明日も続けますが、今日はタスクを完了しませんでした。。。ベッドはとても快適です、さあ