大家好,我正在尝试将快速响应对象传递给我拥有的不同模块。所以在我的server.js
文件中我有这个
const room = require('../controller/rooms_controller')
app.post('/rooms', function(req, res){
var name = req.body.roomname
var loc = req.body.loc
room.newRoom(name, loc, res)
})
所以我试图将res
对象传递给rooms_controller
模块。现在我的 rooms_controller 模块看起来像这样
const Room = require('../models/room')
exports.newRoom = function(name, loc, res){
Room.findOne({'location': loc}, function(err, room, res){
if(err){
res.send({err: err})
}
if(room){
res.send({room: room})
}else{
var newRoom = new Room()
newRoom.location = loc
newRoom.name = name
newRoom.save(function(error){
if(err){
res.send({ error: error })
}
res.send({room: newRoom})
})
}
})
}
因此,在我的数据库中,正在创建记录,但cannot read property send of undefined
在终端中出现错误。任何人都可以帮我解决这个问题。将不胜感激
您做得对,但正在覆盖 res 因为您在此行重新定义它
Room.findOne({'location': loc}, function(err, room, res){
所以 res 是来自的响应,Room.findOne
而不是newRoom
你的实际响应对象的参数。为其中之一使用不同的变量名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句