Dav*_*ale 18 postgresql bookshelf.js
JS初学者试图通过bookshelf.js让PostgreSQL DB与express.js交谈.
github:https://github.com/duskyshelf/bookers-academy/blob/master/booker.js
var knex = require('knex')({
client: 'pg',
connection: "postgres://localhost/bookers"
});
var bookshelf = require('bookshelf')(knex);
var User = bookshelf.Model.extend({
tableName: 'users'
});
var bob = new User({id: 2});
bob.save()
Run Code Online (Sandbox Code Playgroud)
bookshelf.js似乎无法向db添加任何内容.
当前的错误消息是:"未处理的拒绝CustomError:No Rows Updated"
fla*_*usa 41
当您创建提供自己ID的模型时,例如
var bob = new User({id: 2});
Run Code Online (Sandbox Code Playgroud)
Bookshelf假定它是更新操作,而不是插入.它将internal isNew属性设置为false,并且在save()调用when时,而不是INSERT INTO user(id, ...) VALUES (2, ...);执行它UPDATE user ... WHERE id = 2;.
如果没有用户id = 2的更新将几乎悄无声息无能为力.
要强制插入,必须将save()更改为:
bob.save(null, {method: 'insert'});
Run Code Online (Sandbox Code Playgroud)
Bookshelf save()文档描述了这种行为.
| 归档时间: |
|
| 查看次数: |
11677 次 |
| 最近记录: |