在Vue项目中如何获取MongoDB数据库中的数据?
- vue 项目向服务器发送请求
- 服务器请求数据库中的数据
- 服务器向客户端返回数据
服务器如何使用Mongoose查询数据库中已存在的集合(collection)中的数据?
注意:
构建集合构造函数要写在路由规则外面,不可以写在路由规则里面,因为对同一个集合的构造函数多次构建(new mongoose.model(…))会报错。
const mongoose = require('mongoose')
const express = require('express')
const app = express()
// 连接数据库获取数据
// 这一部分一定要独立于具体的路由,否则集合的构造函数多次实例化会报错
mongoose.connect('mongodb://localhost/mydatabase').then(() => {
console.log('connect database successfully...')
})
const Commodity = new mongoose.model('Commodity', new mongoose.Schema({
name: { type: String, required: true },
price: { type: Number, required: true }
}))
app.all('/getcommodities', (request, response) => {
// 解决跨域
response.setHeader('Access-Control-Allow-Headers', '*')
response.setHeader('Access-Control-Allow-Origin', '*')
// 这里使用集合构造函数的静态方法进行查询数据
Commodity.find({}, {'__v': 0})
.then(val => {
response.send(JSON.stringify(val))
})
})
app.listen(6060, () => {
console.log('port:6060 is listening...')
})