我从事此项目已有2年了,我认为这是由最近的更新引起的,但是我想知道是否有任何类型的,智能的,猫鼬/ NoSQL DBA ,灵魂将竭尽所能帮助我追踪和/或解决此问题。
因此,如您在下面看到的那样,这是一个简单的猫鼬查找查询,可以直接传递给MongoDB。就高层而言,这是显而易见的,对于大多数开发人员而言,交互是自然的,就像使用Mongoose的任何Mongo,Express,Node Stack一样。
问题是,当我发送此查询时,无论环境(生产项目)如何,它都无法解决。
“数据”似乎在某处丢失,因此查询根本无法解决。
这是一个简单的设置,实际上是一个测试端点,因此请提供帮助,贯穿进行并发送一些反馈。
非常感谢!
const mongoose = require('mongoose');
const mongoosePaginate = require('mongoose-paginate');
const Schema = mongoose.Schema;
const TestSchema = new Schema({
data: {
type: String,
unique: false,
required: true
},
}, {
timestamps: true
});
TestSchema.plugin(mongoosePaginate);
module.exports = mongoose.model('Test', TestSchema);
class Constructor {
constructor() {}
getAll() {
return TestSchema.find({}, function (err, tests) {})
}
}
module.exports = Constructor
let mongoose = require('mongoose')
// Connect to db
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true, useUnifiedTopology: true }, err => {
if (err)
return console.log("Cannot connect to DB")
connectionCallback()
console.log("DB Connected")
});
let connectionCallback = () => {}
module.exports.onConnect = cb => {
connectionCallback = cb
}
const express = require('express');
const app = express();
const ip = require('ip');
let db = require('./db')
const router = express.Router();
const port = 8888;
const http = require('http').createServer(app);
let ipAddress = 'localhost'; // only works to the local host
try {
// will enable the server to be accessed from the network
ipAddress = ip.address();
} catch( err ){
console.err( err );
}
http.listen(port, ipAddress,
() => {
let message = [
`Server is running at ${ipAddress}:${port}`,
];
console.log( ...message )
});
db.onConnect(() => {
let Constructor = require("./pathTo/Constructor")
let construct = new Constructor()
app.use('/api', router.get('/test', function(req, res) {construct.getAll()}))
})
答案 0 :(得分:0)
您的问题出在constructor.js
getAll
函数上,因为您也要返回并还传递了回调,所以承诺将永远无法解决。您应该解析promise或从回调中返回响应。
解决承诺:
class Constructor {
constructor() {}
async getAll() {
return await TestSchema.find({})
}
}
module.exports = Constructor
从回调返回:
class Constructor {
constructor() {}
getAll() {
TestSchema.find({}, function (err, tests){
return tests.
})
}
}
module.exports = Constructor