首页 > 解决方案 > Node/Express 的 POST 问题

问题描述

我正在尝试在名为 sequelize 的 ORM 的帮助下创建到我的 mysql 数据库的发布路由。但是,在写完我的 POST 路线后,我尝试在邮递员中运行它,但它不起作用。我觉得我写的一切都是正确的。有人可以帮忙吗?

这是我的控制器文件,其中包含 POST 路由

const db = require("../models");

module.exports = function(router) {

    router.get("/api/tasks", (req, res) => {
        db.Task.findAll({}).then(data => {
            res.json(data);
        });
    });

    router.post("api/task", (req, res) => {
        db.Task.create({
            task: "testing",
            completed: false
        }).then(data => {
            res.json(data)
        }).catch(err => res.json(err))
    })
}

这是我的续集模型

const Sequelize = require("sequelize");

module.exports = function(sequelize, DataTypes){
    var Task = sequelize.define("Task", {
        id: {
            type: Sequelize.INTEGER(11),
            allowNull: false,
            autoIncrement: true,
            primaryKey: true
        },
        task: Sequelize.STRING(300),
        completed: {
            type: Sequelize.BOOLEAN,
            defaultValue: false
        }
    });
return Task;
}

不确定它是否重要,但下面是我在数据库中创建表的迁移文件

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable("tasks", {
      id: {
        type: Sequelize.INTEGER(11),
            allowNull: false,
            autoIncrement: true,
            primaryKey: true
      },
      task: Sequelize.STRING(300),
      completed: {
          type: Sequelize.BOOLEAN,
          defaultValue: false
      },
      createdAt: Sequelize.DATE,
      updatedAt: Sequelize.DATE
    })
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable("tasks");
  }
};

出现的错误只是“无法发布/api/task”

标签: mysqlnode.jsormsequelize.jspostman

解决方案


推荐阅读