【发布时间】:2014-04-16 13:56:00
【问题描述】:
我正在尝试使用 Express 和 Waterline ORM 构建 API。我使用的适配器是 mongodb-adapter。我尝试从 Sails 外部执行此操作的原因是我想更好地了解 Waterline ORM,以便我可以为 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');
});
因此,据我了解,集合将具有 Waterline API 定义的创建/更新/销毁方法。但是,当我发布到 /users 时,我得到一个未定义的“无法调用方法“创建”。我使用的 Waterline 版本是 0.9.16。我可能设置错了。提前致谢。
【问题讨论】:
标签: javascript node.js express sails.js waterline