我遇到了一个问题,简单的mongodb/monk find()不能工作。我知道find()返回promise,所有3种解决方法都不起作用。我做错了什么?谢谢!
这是我的代码。3条路由全部不返回,需要取消:
const express = require('express');
const router = express.Router();
const db = require('monk')('mongodb://127.0.0.1:27017/storage');
const files = db.get('fs.files');
router.get('/1', async (req, res) => {
const result = await files.find();
res.json(result);
});
router.get('/2', (req, res) => {
files.find()
.then(
(result) => { res.json(result) },
(error) => { res.json(error) }
);
});
router.get('/3', (req, res) => {
files.find({}, (result) => {
res.json(result)
});
});
module.exports = router;更新:我已经摆脱了munk,原生MongoDB驱动程序完成了这项工作:
router.get('/', (req, res) => {
mongo.MongoClient.connect(mongo_uri, mongoClientOptions, async (err, conn) => {
assert.ifError(err);
const files = await conn.db('storage')
.collection('fs.files')
.find()
.toArray();
res.json(files);
});
});问题是我无法检查munk连接管理器是否返回正确的db实例。
发布于 2020-12-14 21:51:14
解决方案: db.get('fs.files');to db.get(‘db.get’);
这是我的演示项目->数据库:演示,集合:用户
const express = require('express');
const app = express();
const db = require('monk')('mongodb://127.0.0.1:27017/demo');
const files = db.get('users');
app.get('/1', async (req, res) => {
const result = await files.find();
res.json(result);
});
app.get('/2', (req, res) => {
files.find()
.then(
(result) => { res.json(result) },
(error) => { res.json(error) }
);
});
app.get('/3', (req, res) => {
files.find({}, (result) => {
res.json(result)
});
});
app.listen(4000, () => {
console.log('Example app listening at 4000')
})
module.exports = app;https://stackoverflow.com/questions/65288317
复制相似问题