【发布时间】:2020-09-29 11:36:23
【问题描述】:
我是 JS 世界的新手,正在努力学习 NodeJs 基础知识,这就是我想要做的。
我的 mongoDb 中有一个联系人,编写一个 get 方法将其取回给调用者。简单吧?
这是我的路由器方法
import {
getContact
} from '../controllers/crmController'
const routes = (app) => {
app.route('/contact').get((req, res, next) => {
console.log(`request URL ${req.originalUrl}`)
console.log(`request method ${req.method}`)
next()
}, getContact)
}
export default routes
这是我的客户控制器代码
import {
getDbContact
} from '../data-access/crmDataAccess'
export const getContact = (req, res) => {
console.log(`Controller calling db access`)
var dbContact = getDbContact()
console.log(`Controller Recieved ${dbContact}`)
res.json(dbContact)
}
这是我通过 mongoose 访问的数据
import mongoose from 'mongoose'
import { ContactSchema } from '../models/crmModel'
const Contact = mongoose.model('Contact', ContactSchema)
export const getDbContact = () => {
Contact.find({}, (err, contact) => {
if (err) {
console.log(`Error ${err}`)
} else {
console.log(`Contact Recieved ${contact}`)
return contact
}
})
}
从控制台日志中,我可以看到正在从数据库中获取数据,但它从未响应邮递员的呼叫。我想我在从控制器调用 db 访问方法时做错了什么.. 但很可疑,不知道是什么.. 有人可以帮帮我吗?谢谢
【问题讨论】:
-
(1)
getDbContact没有返回联系人,(2)getContact没有正确处理承诺。 -
谢谢,你能把可以实现相同功能的代码扔在这里吗?基本上我希望这三层依次返回到路由器..!
标签: javascript node.js express mongoose promise