node.js页面报错:Cannot GET /project/1/items?

问题描述

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');
});

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 1.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题