Я пытаюсь создать API с Express и Waterline ORM. Я использую адаптер mongodb-adapter. Причина, по которой я пытаюсь сделать это вне Sails, заключается в том, что я хочу лучше понять ORM Waterline, чтобы внести свой вклад в Sails Couch Adapter. Вот что я получил.
var express = require('express'),
app = express(),
bodyParser = require('body-parser'),
methodOverride = require('method-override'),
Waterline = require('waterline');
var mongoAdapter = require('sails-mongo');
app.use(bodyParser());
app.use(methodOverride());
mongoAdapter.host = 'localhost';
mongoAdapter.schema = true;
mongoAdapter.database = 'waterline-mongo';
app.models = {};
var User = Waterline.Collection.extend({
adapter:'mongodb',
// identity: 'user',
attributes: {
first_name: 'string',
last_name: 'string'
}
});
app.post('/users', function(req, res) {
console.log(req.body);
app.models.user.create(req.body, function(err, model) {
if(err) return res.json({ err: err }, 500);
res.json(model);
});
});
new User({ adapters: { mongodb: mongoAdapter }}, function(err, collection) {
app.models.user = collection;
// Start Server
app.listen(3000);
console.log('Listening on 3000');
});
Итак, насколько я понимаю, коллекция будет иметь методы создания/обновления/уничтожения, как определено API Waterline. Однако, когда я публикую в /users, я получаю сообщение «не могу вызвать метод «создать» неопределенного. Я использую версию Waterline 0.9.16. Я, наверное, неправильно это настраиваю. Заранее спасибо.