1
こんにちは皆私は別のモジュールにエクスプレスレスポンスオブジェクトを渡そうとしています。だから私のserver.js
ファイルに私はだから私はrooms_controller
モジュールにres
オブジェクトを渡すためにしようとしています。このexpress.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)
})
を持っています。今私の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
エラーを取得しています。誰もがこれで私を助けてもらえますか?あなたは、この行に
Room.findOne({'location': loc}, function(err, room, res){
それを再定義するために大幅に
'room'は' findOne'からの応答です。コールバックが実際には3番目の引数を渡すとは思われません。 – robertklep
私はどのような関数がもっともらしいかわかりませんが、@robertklepが記述しているので、コールバックの3番目の引数を完全に削除できます。 – Froast
ありがとう。 :) – Shadid