国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

javascript - nodejs在一個頁面下顯示mongodb數據庫里的內容,頁面出現is not defined錯誤,是哪里出了問題?

瀏覽:87日期:2023-09-30 13:28:00

問題描述

想在一個頁面顯示房間信息,于是照著一個curd的demo來寫自己的項目,但是打開后出現如下錯誤:

ReferenceError: E:codekkSecretChat-masterviewsroomview.html:51 49| </thead> 50| <tbody> >> 51| <% rooms.forEach(function( room ){ %> 52| <tr> 53| <td><%=room._id%></td> 54| <td><%= room.roomName %></td>rooms is not defined at eval (eval at compile (E:codekkSecretChat-masternode_modulesejslibejs.js:524:12), <anonymous>:14:8) at returnedFn (E:codekkSecretChat-masternode_modulesejslibejs.js:555:17) at tryHandleCache (E:codekkSecretChat-masternode_modulesejslibejs.js:203:34) at View.exports.renderFile [as engine] (E:codekkSecretChat-masternode_modulesejslibejs.js:412:10) at View.render (E:codekkSecretChat-masternode_modulesexpresslibview.js:128:8) at tryRender (E:codekkSecretChat-masternode_modulesexpresslibapplication.js:640:10) at EventEmitter.render (E:codekkSecretChat-masternode_modulesexpresslibapplication.js:592:3) at ServerResponse.render (E:codekkSecretChat-masternode_modulesexpresslibresponse.js:966:7) at E:codekkSecretChat-masterroutesroomview.js:19:9 at Layer.handle [as handle_request] (E:codekkSecretChat-masternode_modulesexpresslibrouterlayer.js:95:5) at next (E:codekkSecretChat-masternode_modulesexpresslibrouterroute.js:137:13) at Route.dispatch (E:codekkSecretChat-masternode_modulesexpresslibrouterroute.js:112:3) at Layer.handle [as handle_request] (E:codekkSecretChat-masternode_modulesexpresslibrouterlayer.js:95:5) at E:codekkSecretChat-masternode_modulesexpresslibrouterindex.js:281:22 at Function.process_params (E:codekkSecretChat-masternode_modulesexpresslibrouterindex.js:335:12) at next (E:codekkSecretChat-masternode_modulesexpresslibrouterindex.js:275:10)

roomview.html部分代碼:

<h1>房間列表</h1><table> <thead> <tr><th>id</th><th>roomName</th><th>roomContent</th><th>roomCreateUser</th><th>roomImg</th><th>roomCreateDate</th><th>roomJoinPeos</th><th>roomChat</th> </tr> </thead> <tbody> <% rooms.forEach(function( room ){ %> <tr><td><%= room._id%></td><td><%= room.roomName %></td><td><%= room.roomContent %></td><td><%= room.roomCreateUser %></td><td><%= room.roomImg %></td><td><%= room.roomCreateDate %></td><td><%= room.roomJoinPeos %></td><td><%= room.roomImg %></td><td><a href='http://www.cgvv.com.cn/wenda/del.html?id=<%=room._id%>'>刪除房間</a> | <a href='http://www.cgvv.com.cn/wenda/modifyroom.html?id=<%=demo._id%>'>更新房間信息</a></td> </tr> <% }); %> </tbody>

路由roomview.js代碼:

var fs = require(’fs’);var formidable = require(’formidable’);var util = require(’util’);var express = require(’express’);var multer = require(’multer’);var roommodal = require(’../src/db/models/room’);var user=require(’../src/db/models/user’);var adminuser=require(’../src/db/models/adminuser’);var upload = multer({ dest: ’uploads/’ });var result = require(’../src/utils/result’);var router = express.Router();router.get(’/roomview’,function(req,res,next){ if(req.session.userid){return next(); } res.redirect(’/adminlogin’);});router.get(’/’,function(req,res,next){ res.render(’roomview.html’,{userid:req.session.userid});});var Room=roommodal.Room;exports.roomview = function(req, res,next){ Room.find(function(err,docs){res.render(’roomview’, { rooms:docs}); });};module.exports = router;

模型room.js部分代碼:

var mongoose = require(’mongoose’);var Schema = mongoose.Schema;var roomSchema = new Schema({ roomName:String, roomContent:String, roomCreateDate:Date, roomImg:String, roomCreateUser:String, roomJoinPeos:Number, roomChat:String});var room = mongoose.model(’Room’,roomSchema);module.exports = room;

server.js部分代碼:

var express = require(’express’);var path = require(’path’);var bodyParser = require(’body-parser’);var session = require(’express-session’);var loginRouter = require(’./routes/login’);var logoutRouter = require(’./routes/logout’);var indexRouter = require(’./routes/index’);var roomviewRouter = require(’./routes/roomview’);var registerRouter = require(’./routes/register’);var adminloginRouter = require(’./routes/adminlogin’);var adminregisterRouter = require(’./routes/adminregister’);var app = express();app.set(’PORT’,3000);var server = app.listen(app.get(’PORT’),function(err){ if(err){ console.error(’server error:%s’,err && ess.message); return; } console.log(’server listening at :::’,app.get(’PORT’));});app.use(session({ secret:’recommand 128 bytes random string’, cookie:{maxAge:60*1000*1000}}));app.use(bodyParser.json());app.use(bodyParser.urlencoded({extened:true}));app.use(’/public’,express.static(path.join(__dirname,’/public’)));app.use(’/uploads’,express.static(path.join(__dirname,’/uploads’)));var ejs = require(’ejs’);app.engine(’html’,ejs.__express);app.set(’view engine’, ’html’);app.use(’/login’,loginRouter);app.use(’/adminlogin’,adminloginRouter);app.use(’/’,indexRouter);app.use(’/roomview’,roomviewRouter);app.use(’/register’,registerRouter);app.use(’/adminregister’,adminregisterRouter);app.get(’/room/users/:roomId’,function(req,res,next){ res.json(rooms[req.params.roomId]);});app.get(’/adminlogout’,function(req,res,next){ if(req.session.userid){var user = req.session.userid;delete req.session.userid; } res.redirect(’/adminlogin’);});

我猜測是在roomview.js這個路由出了問題而不是server.js,然后模型room.js是不能改的,所以應該只能改roomview.js,請問各位大神,怎么改呢?

問題解答

回答1:問題

server.js部分代碼掛載太多app.use(),根本用不著。

路由roomview.js代碼都不符合語法。 exports.roomview 是從哪里學到的?還能搭配 module.exports 使用?把 exports.roomview 改寫成 router.get()模式。以下代碼不符合語法。

exports.roomview = function(req, res,next){ Room.find(function(err,docs){res.render(’roomview’, { rooms:docs}); });};

你給出頁面錯誤信息,也給出你打開的頁面鏈接呀。要不我怎么知道是打開/roomview出錯?還是打開/roomview/123還是打開/roomview/roomview出錯?

解決

根據錯誤信息,你是想打開/roomview頁面,你的 路由 roomview.js 的 exports.roomview 根本就沒有走到。走的是路由 roomview.js 的 route.get(’/’, callback),這個 callback 沒有設置 rooms, 所以報錯,把 exports.roomview 引入 callback。大致如下。

router.get(’/’, function(req,res,next){ Room.find(function(err,docs){res.render(’roomview’, { userid: req.session.userid, rooms:docs}); });});

soonfy

回答2:

你在控制臺 把你render 到頁面的 rooms 數據打出來,看有木有,我怎么感覺 你寫錯了。 你在room.js里面 暴露出去了 room;然后 你在roomview.js路由方法怎么寫var Room=roommodal.Room; 直接 roommodal.find 就好了,后面的 Room 是啥!!!

標簽: JavaScript
主站蜘蛛池模板: 久久99热久久精品91 | www.91亚洲| 欧美激情精品久久久久 | 亚洲欧美视频一区二区 | 国产高清国产专区国产精品 | 94欧美setu | 99精品小视频 | 久久国产成人亚洲精品影院老金 | 精品国产欧美一区二区三区成人 | 一区二区三区免费高清视频 | 狠狠色丁香久久综合网 | 99精品视频99 | 久久久久久88色愉愉 | 中国一级做a爰片久久毛片 中日韩欧美一级毛片 | 欧美精品久久久久久久影视 | 手机看片国产免费 | 免费无遮挡毛片 | 日本三级香港三级少妇 | 久久国产精品自线拍免费 | 免费人成在线 | 国产欧美一区二区精品久久久 | 手机看片国产免费永久 | 欧美另类激情 | 日韩精品一区二区三区高清 | 99在线视频播放 | 国产一级a毛片 | 午夜国产精品久久久久 | 日产一一到六区网站免费 | 狼人青草久久网尹人 | 欧美成人se01短视频在线看 | 欧美在线视频一区 | 国产一级一级一级成人毛片 | 成人网18免费视频 | 国产爱啪啪| 午夜不卡视频 | 手机亚洲第1页 | 日韩国产精品99久久久久久 | 国产喷水女王在线播放 | 精品性久久 | 深夜在线观看大尺度 | 91av成年影院在线播放 |