我正在创建一个带有 sequelize 的 api,带有控制器模型迁移...,但是当我将 sucrase 用于导入/导出时,我的 api 损坏了,当我提出请求时,它向我发送了此错误“TypeError:无法读取属性” length' of undefined" ,我被困在这部分,我将在下面留下我的路线/控制器/模型
import express from 'express'
import UserController from './controllers/UserController.js'
const router = express.Router();
const userController = new UserController()
router.post("/users",userController.createUser)
router.post("/login", userController.login)
export default router;
这是我的控制器:
import User from '../models/User.js'
import crypto from 'crypto';
import Op from "sequelize";
class UserController {
async createUser(req, res) {
const { name, pw, message } = req.body;
const password = crypto.createHash("md5").update(pw).digest("hex");
try {
const user = await User.create({ name, password, message });
res.status(200).json({
Response: "usuario criado com sucesso",
});
} catch (error) {
console.log(error)
res.status(401).json({
Response: error,
});
}
}
async login(req, res) {
const { name, pw } = req.body;
const password = crypto.createHash("md5").update(pw).digest("hex");
try {
const results = await User.findAll({
attributes: ["message"],
where: {
[Op.and]: [{ password: "password" }, { name: "name" }],
},
});
console.log(results);
res.status(200).json({
Response: results,
});
} catch (error) {
res.status(401).json({
Response: "error",
});
}
}
}
export default UserController;
这是我的模型:
import {DataTypes , Model} from 'sequelize';
class User extends Model {
static init(sequelize) {
super.init({
name: DataTypes.STRING,
password: DataTypes.STRING,
message: DataTypes.TEXT
}, {
sequelize
});
}
}
export default User;
在使用 sucrase 之前,我的应用程序运行正常,但是我在导入 dotenv 时遇到了问题,所以我选择使用 sucrase 来帮助我进行导入/导出, 值得一提的是,我的迁移运行正常……只有当我要使用 User.create 做一个切口时才会弹出错误,我会将完整的错误消息放在下面,感谢您的关注。
TypeError: Cannot read property 'length' of undefined
at User._initValues (/home/lagos/Documents/MySGBD/api/node_modules/sequelize/lib/model.js:140:49)
at new Model (/home/lagos/Documents/MySGBD/api/node_modules/sequelize/lib/model.js:118:10)
at new User (/home/lagos/Documents/MySGBD/api/src/models/User.js:4:1)
at Function.build (/home/lagos/Documents/MySGBD/api/node_modules/sequelize/lib/model.js:2157:12)
at Function.create (/home/lagos/Documents/MySGBD/api/node_modules/sequelize/lib/model.js:2207:23)
at createUser (/home/lagos/Documents/MySGBD/api/src/controllers/UserController.js:12:43)
at Layer.handle [as handle_request] (/home/lagos/Documents/MySGBD/api/node_modules/express/lib/router/layer.js:95:5)
at next (/home/lagos/Documents/MySGBD/api/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/lagos/Documents/MySGBD/api/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/lagos/Documents/MySGBD/api/node_modules/express/lib/router/layer.js:95:5)