为了账号安全,请及时绑定邮箱和手机立即绑定

有跳转的页面就加载不起来,主页,admin/move,admin/list,admin都能成功加载起来。

麻烦大神帮忙看看,路由配置哪里写的不对,非常感谢啦!
app.js代码
var express = require('express')//加载express框架
var path = require('path')
var jquery = require('jquery')
// var mongoose = require('mongoose')
var _ = require('underscore')
// var Movie = require('./models/movie')
//引入mysql数据库模块,引入数据库参数文件
var mysql = require('mysql')
var mysqls = require('./mysql/mysqls') 
var settings = require('./mysql/setting')

//创建数据库连接
// var connection = mysql.createConnection(settings.db)
var movie1 = {
				'title':'美人鱼',
				'doctor':'周星驰',
				'country':'中国',
				'year':'2016',
				'poster':'images/1.jpg',
				'flash':'http://www.iqiyi.com/v_19rrlq5w00.html',
				'summary':'搞笑',
				'language':'中文'
			}
// ["\'周星驰\'","\'美人鱼\'","\'中文\'","\'中国\'","\'搞笑\'","\'1\'","\'2\'","\'2016\'"]

//声明数据池
var pool

//创建连接池、删除原表、创建新表
var promise=mysqls.createDBPool().then(mysqls.deleteTab).then(mysqls.createTab)
//创建表之后插入数据
promise.then(function(rt){
	pool=rt
	mysqls.insertValue(rt,movie1)
}).catch(function(err){
	console.log(err)
})

var bodyParser = require('body-parser')
var port = process.env.PORT || 3000//设置端口号,process.env.PORT全局变量可从命令行中设置
var app = express()//创建服务器

app.set('views','./view/pages')//设置网页入口地址,第一个参数为默认的views,第二个参数为页面路由路径
app.set('view engine','jade')//设置页面加载引擎为jade
// app.use(express.bodyParser())
app.use(bodyParser.json())//将表单的样式格式化
app.use(bodyParser.urlencoded({ extended: true }))
//.bowerrc文件用来指定bower安装插件的目录路径
app.use(express.static(path.join(__dirname,'public')))//托管静态文件
app.listen(port)

console.log('jade started on port '+port)

// 设置页面路由,index page,第一个参数为访问的URL端口之后的参数
app.get('/',function(req,res){
	var promise = mysqls.findByName(pool,'','').then(mysqls.handleData).then(function(rt){
		// console.log(rt)
		res.render('index',{
			title:'imooc 首页',
			movies:rt
		})
	}).catch(function(err){
		console.log('err')
	})
})

//设置页面路由,detail page
app.get('/move/:_id',function(req,res){
	console.log('详情页:'+JSON.stringify(req))
	var id = req.params.id
	var promise = mysqls.findByName(pool,'_id',id).then(mysqls.handleData).then(function(rt){
		res.render('detail',{
			title:'imooc 详情页' + movie.title,
			movie:rt[0]
		})
	}).catch(function(err){
		console.log('err')
	})
})

//设置页面路由,admin page,第一个参数为访问的URL端口之后的参数,如127.0.0.1:3000/admin/movie
app.get('/admin/movie',function(req,res){
	res.render('admin',{
		title:'imooc 后台录入页',
		movie:{
			title:'',
			doctor:'',
			country:'',
			year:'',
			poster:'',
			flash:'',
			summary:'',
			language:''
		}
	})
})

//admin update movie
app.get('/admin/update/:_id',function(req,res){
	var id=req.params.id
	if(id){
		var promise = mysqls.findByName(pool,'_id',id).then(mysqls.handleData).then(function(rt){
			res.render('admin',{
				title:'imooc 后台更新页',
				movie:rt[0]
			})
		}).catch(function(err){
			console.log('err')
		})
	}
})

//设置页面路由,admin post movie,第一个参数为访问的URL端口之后的参数,如127.0.0.1:3000/admin/movie/new
//获取页面POST过来的页面
app.post('/admin/movie/new',function(req,res){
	var movieJson = req.body
	var id= movieJson.movie._id
	var movieObj=movieJson.move
	if(id !== 'undefined'){//如果id存在则,查询并替换
		var promise = mysqls.findByName(pool,'_id',id).then(mysqls.handleData).then(function(rt){
			mysqls.updateValue(pool,rt[0],'_id',id)
		}).catch(function(err){
			console.log('err')
		})
	}
	else{//新增的电影
		mysqls.insertValue(pool,movieObj)
	}
})
//设置页面路由,list page,第一个参数为访问的URL端口之后的参数,如127.0.0.1:3000/admin/list
app.get('/admin/list',function(req,res){
	var promise = mysqls.findByName(pool,'','').then(mysqls.handleData).then(function(rt){
		// console.log(rt)
		res.render('list',{
			title:'imooc 列表页',
			movies:rt
		})
	}).catch(function(err){
		console.log('err')
	})
})

//list delete movie 配置删除路由
app.delete('/admin/list',function(req,res){
	var id = req.query.id
	if(id){
		var promise = mysqls.deleteValue(pool,'_id',id).then(function(rt){
			if(rt===1){
				promise = mysqls.findByName(pool,'','').then(mysqls.handleData).then(function(rt){
					res.render('list',{
						title:'imooc 列表页',
						movies:rt
					}).catch(function(err){
						console.log('err')
					})
				})
			}
		}).catch(function(err){
			console.log('err')
		})
	}
})
detail.jade代码
extends ../layout

block content 
	.container
		.row
			.col-md-7
				embed(src="#{movie.flash}",allowFullScreen="true",quality="high",width="720",height="600",align="middle",type="application/x-shockwave-flash")
				//- <img src="#{movie.poster}" alt="#{movie.title}" />
			.col-md-5
				dl.dl-horizontal
					dt 电影名字
					dd=movie.title
					dt 导演
					dd=movie.doctor
					dt 国家
					dd=movie.country
					dt 语言
					dd=movie.language
					dt 上映年份
					dd=movie.year
					dt 简介
					dd=movie.summary

http://img1.sycdn.imooc.com//5aa0a94f0001c2d811510712.jpg

正在回答

1 回答

好像是你的detail页面url中id没有正确传过来,你检查一下你mysql中能不能正确的存入数据,看一下id,把你地址栏中的undefined替换成你数据库中的id看看能不能正常跳转http://img1.sycdn.imooc.com//5aa3808400017f3005000310.jpg

0 回复 有任何疑惑可以回复我~
#1

沫沫Michelle 提问者

嗯嗯,就是id没有传过来,已经解决了,非常感谢哈!
2018-03-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
node+mongodb 建站攻略(一期)
  • 参与学习       91820    人
  • 解答问题       921    个

带你完整实现一个从前端到后端的项目,初中级前端开发工程师必学课程

进入课程

有跳转的页面就加载不起来,主页,admin/move,admin/list,admin都能成功加载起来。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号