首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Express和Waterline ORM构建api

用Express和Waterline ORM构建api
EN

Stack Overflow用户
提问于 2014-04-16 13:56:00
回答 1查看 1.9K关注 0票数 0

我正在尝试用Express和Waterline ORM构建一个API。我使用的适配器是mongodb适配器。我试图从外航做这件事的原因是,我想更好地理解水系ORM,这样我就可以为做出贡献。这是我得到的。

代码语言:javascript
复制
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定义的create/update/destory方法。然而,当我发布到/users时,我会得到一个“无法调用”未定义的方法"create“。我使用的Waterline版本是0.9.16。我可能设置错了。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-02 10:14:55

您必须添加以下说明:

代码语言:javascript
复制
var orm = new Waterline();

var config = {
    // Setup Adapters
    // Creates named adapters that have have been required
    adapters: {
        'default': 'mongo',
        mongo: require('sails-mongo')
    },

    // Build Connections Config
    // Setup connections using the named adapter configs
    connections: {
        'default': {
            adapter: 'mongo',
            url: 'mongodb://localhost:27017/unparse'
        }
    }
};

var User = Waterline.Collection.extend({
    identity: 'user',
    connection: 'default',

    attributes: {
        first_name: 'string',
        last_name: 'string'
    }
});
orm.loadCollection(User);

orm.initialize(config, function(err, data) {
    if (err) {
        throw err;
    }

    app.models = data.collections;
    app.connections = data.connections;

    app.listen(3000);
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23111572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档