试图在bookshelf.js

时间:2016-01-04 02:47:00

标签: typescript bookshelf.js

嗯,我对所有这些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分的任何想法?

1 个答案:

答案 0 :(得分:0)

  

关于为什么我在POST时获得500的想法?

500表示服务器错误(不是客户端错误)。但是,这可能是因为服务器崩溃,因为客户端发送了服务器无法正常处理的内容。

您需要查看服务器上的堆栈跟踪。代码:

User.forge(u).save().then ...

表示forge OR save函数存在问题(因为承诺如何工作)。