问题描述
node.js+sequelize实现数据增删改查
问题出现的环境背景及自己尝试过哪些方法
首页是这样
点击第一个链接“aa”出现这个
切换路由各个页面也都出现cannot get
终端报这个错:
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
server.js代码
var express = require('express'),
Sequelize=require('sequelize')
var bodyParser =require('body-parser')
var app = express();
var sequelize=new Sequelize(
'mind',
'root',
'123456',
{
'dialect': 'mysql', // 数据库使用mysql
'host': 'localhost', // 数据库服务器ip
'port': 3306, // 数据库服务器端口
'define': {
// 字段以下划线(_)来分割(默认是驼峰命名风格)
'underscored': true
}
}
);
var Project=sequelize.define('Project',{
title:Sequelize.STRING,
description:Sequelize.TEXT,
created:Sequelize.DATE
});
var Task=sequelize.define('Task',{
title:Sequelize.STRING
});
Task.belongsTo(Project);
Project.hasMany(Task);
sequelize.sync();
app.set('view engine','jade');
app.set('views',__dirname+'/views');
app.set('view option',{layout:false});
app.use(express.static(__dirname+'/public'));
app.use(bodyParser.urlencoded({extended:true}));
// 首页路由
app.get('/', function(req, res) {
Project.findAll().then(function(projects){
res.render('index',{projects:projects});
})
.catch(function (err){
console.log("error");
});
});
//删除项目路由
app.delete('/project/:id', function(req, res) {
Project.findById(Number(req.params.id)).then(function(projects){
projects.destroy()
.then(function(){
res.send(200);
})
.catch(function (err){
console.log("error");
});
}).catch(function (err){
console.log("error");
});
});
//创建项目路由
app.post('/projects', function(req, res) {
Project.build(req.body).save()
.then(function(obj){
res.send(obj);
})
.catch(function (err){
console.log("error");
});
});
//展示指定项目中的任务
app.get('/project/:id/tasks', function(req, res) {
Project.findById(Number(req.params.id))
.then(function(project){
project.getTasks().on('success',function(tasks){
res.render('tasks',{project:project,tasks:tasks});
})
})
.catch(function (err){
console.log("error");
});
});
//为指定项目添加任务
app.post('/project/:id/tasks', function(req, res) {
res.body.ProjectId=req.params.id;
Task.build(req.body).save()
.then(function(obj){
res.send(obj);
})
.catch(function (err){
console.log("error");
});
});
//删除任务路由
app.delete('/task/:id', function(req, res) {
Task.findById(Number(req.params.id)).success(function(task){
task.destroy()
.then(function(){
res.send(200);
})
.catch(function (err){
console.log("error");
});
}).catch(function (err){
console.log("error");
});
});
app.listen(3000,function(){
console.log('listening to port 3000');
});