Node.js 如何从数据库中获取所有实例?
我被迫做一个“简单”的项目。老师想要mongoDb和NodeJS。我想从数据库中获取所有汽车,但find()不起作用。 我的代码模型:Node.js 如何从数据库中获取所有实例?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我被迫做一个“简单”的项目。老师想要mongoDb和NodeJS。我想从数据库中获取所有汽车,但find()不起作用。 我的代码模型: const mongoose = require('mongoose'); const CarSchema = mongoose.Schema({ mark:{ type: String, required: true,}, model:{ type: String, requir
const mongoose = require('mongoose');
const CarSchema = mongoose.Schema({
mark:{
type: String,
required: true,},
model:{
type: String,
required: true,},
price:{
type: Number,
required: true,},
available: {
type: Boolean,
required: true,},
pic_1:{
type:String,
required:true,
},
pic_2:{
type:String,
required:true,
}
})
const Car = mongoose.model('Car', CarSchema)
module.exports = Car
路线:
router.get('/getAll', (req, res) =>{
const cr=Car.find({});
console.log(cr);
res.render('main', {user: req.user, cars:cr} );
});
Console.log显示所有内容,但不显示车辆列表;)更严格地说:它显示了应用程序和控制器的结构。如何修复它?没有=>{}怎么做?它很难辨认,很长,我的眼睛在流血。我只想从db中获取所有汽车,将它们指定给var,然后用这些汽车渲染视图
有很多问题,但没有一个答案解决了我的问题!
致以最诚挚的问候,Car.find()是一个异步操作
解决方案1:使用异步/等待
解决方案2:使用回调函数
如果不想使用箭头功能,请按如下所示进行更改
() => {} > function() {}
对代码的更改
router.get('/getAll', async function(req, res) {
const cr = await Car.find({});
console.log(cr);
res.render('main', {user: req.user, cars:cr} );
});
参考:
() => {} > function() {}
router.get('/getAll', async function(req, res) {
const cr = await Car.find({});
console.log(cr);
res.render('main', {user: req.user, cars:cr} );
});