mongodb - 在 Falcor 中如何使用数据库?

标签 mongodb reactjs falcor falcor-router

我是 Falcor 数据获取框架的新手。当我请求类似的东西时,我尝试了几个例子

model.get(["contacts", {0..2}, "name"])
     .then(response => {
        this.state.list = response.json.contacts;
        this.setState(this.state);
      });

在服务器端

let data = {
    contacts: [
        {name: "ABC"},
        {name: "XYZ"},
        {name: "PQR"}
    ]
};

let contactsRouter = Router.createClass([
    {
        route: 'contacts[{integers:contactIndexes}]',
        get: (pathSet) => {
            let results = [];
            pathSet.contactIndexes.forEach(contactIndex => {
                if (data.contacts.length > contactIndex) {
                    results.push({
                        path: ["contacts", contactIndex, "name"],
                        value: data.contacts[contactIndex].name
                    });
                }
            });
            return results;
        }
    },
    {
        route: 'contacts.add',
        call: (callPath, args) => {
            var newContact = args[0];

            data.contacts.push({name: newContact})
            return [
                {
                    path: ['contacts', data.contacts.length-1, 'name'],
                    value: newContact
                },
                {
                    path: ['contacts', 'length'],
                    value: data.contacts.length
                }
            ]
        }
    }
]);

我正在获取数据并且也能够执行其他操作。 我的问题是我想对 MongoDB 进行相同的 CRUD 操作,而不是从

数据.联系人

我如何构造 JSON Graph 对象数据应该来自数据库架构。希望我的问题得到解决。

最佳答案

最简单的方法是在路由的 get 函数中简单地进行数据库查询:

{
    route: 'contacts[{integers:contactIndexes}]',
    get: (pathSet) => {
        const data = db.get('myModel', (err, res) => {
            return res
        })
        let results = [];
        pathSet.contactIndexes.forEach(contactIndex => {  
            if (data.contacts.length > contactIndex) {
                results.push({
                    path: ["contacts", contactIndex, "name"],
                    value: data.contacts[contactIndex].name
                });
            }
        });
        return results;
    }
}

做了一个简单的repo使用 Falcor 和 CouchDB。了解应该如何在 MongoDB 中完成就足够了。

关于mongodb - 在 Falcor 中如何使用数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33804342/

相关文章:

javascript - Falcor 模型如何处理对字符串的引用?

javascript - Angular/javascript : Read values from a GET

javascript - 用 EJS 迭代 Mongoose 对象

css - Storybook 自定义 webpack 加载空的 scss 对象

javascript - 使用 this.setState 和来自 immutability-helper 的更新不会重新渲染 React 组件

falcor - 如何使用 Falcor 从客户端发送身份验证 token

java - 将 Joda DateTime 添加到 MongoDB——无法序列化

node.js - 无法使用 Node/Express/Mongodb 读取 null 的属性 'find'

reactjs - 你应该用 React Context Provider 包装你的整个应用程序吗?