嗯,我对所有这些TS都很陌生并试图让这个简单的API工作,我已经为我的数据类型定义了一些接口,然后在客户端和API本身之间共享。
但是当我尝试使用bookshelf.js将用户存储在数据库中时我碰到了墙,只是因为我已经将用户项目关系定义为IProject
的数组在IUser
。
我user.d.ts
试图存储:
interface IUser {
login: string
pass: string
name: string
isAdmin: boolean
projects?: IProject[]
}
我在服务器中执行此操作的方式是发送一个空数组,期望TS +书架能够做到这一点:
export function post(req, res){
if (req.session.user && req.session.user.isAdmin) {
let user: IUser = {
login: req.body.login,
pass: bcrypt.hashSync(req.body.pass),
name: req.body.name,
isAdmin: req.body.isAdmin,
projects: []
}
createUser(user).then(status => res.sendStatus(status), status => res.sendStatus(status))
createUser()
基本上在哪里:
User.forge(u).save().then(() => resolve(201), () => reject(500))
关于为什么我在发布时获得500分的任何想法?
答案 0 :(得分:0)
关于为什么我在POST时获得500的想法?
500表示服务器错误(不是客户端错误)。但是,这可能是因为服务器崩溃,因为客户端发送了服务器无法正常处理的内容。
您需要查看服务器上的堆栈跟踪。代码:
User.forge(u).save().then ...
表示forge
OR save
函数存在问题(因为承诺如何工作)。