3

上記のスタックを使用して、単純なCRUDアプリを作成する必要があります。

しかし、それについての私の知識の欠如は、私がより簡単な方法で物事を行うことを妨げているかもしれません。

私の主な関心事はアップデートです。データベースからロードされたオブジェクト(ドキュメント)があります。フィールドをフォームにマップする必要があり、フォームの内容を変更して保存するときに、データベースを更新する必要があります。

JADEを使用してフォームを動的にレンダリングおよび入力するのは非常に簡単でしたが、帰りに、jQueryを使用してフォームの文字列化されたJSON表現を送信することにより、オブジェクトを「手動で」再構築しました。データベースに保存する前に。

このマッピングを実行する自動ツールはありますか?JSONオブジェクトとフォームを指定すると、JSONオブジェクトは、情報の入力と保存を処理してモデルに戻します。

参考までに、私はSpringMVC+Hibernateのバックグラウンドから来ています。

チュートリアルへのポインタや簡単な例でもかまいません。前もって感謝します!

4

4 に答える 4

1

LocomotiveJSの作成者によって、を使用していPassportます。

機関車はマングースORMをサポートしています。
ローカルJSオブジェクトを変更し、save()を呼び出して更新します。
これはあなたのニーズに合っていますか?

ブログにこの設定を使用したサンプルは次のとおりです:
https ://github.com/strongloop/sample-blog

于 2013-03-27T05:38:50.023 に答える
1

他の人と同じように、私は間違いなくMongooseJSをお勧めします。私が同様のスタックを学ぼうとし始めたとき、それは私を助けました。サーバーには、次のようなものがあります。

// Define schema
var userSchema = mongoose.Schema(
    { name: 'string',
      description: 'string',
      email: 'string',
      date: { type: Date, default: Date.now },
    });

// Instantiate db model
var User = mongoose.model('User', userSchema);

// POST from client
exports.addUser = function (req, res) {

    // req.body contains the json from the client post
    // as long as the json field names are the same as the schema field names it will map the data automatically
    var newUser = new User(req.body); 

    newUser.save(function (err) {
      if(err) {
          return res.json({error: "Error saving new user"});
      } else {
        console.log("success adding new user");
        res.json(newUser);
      }

    });
};

// PUT from client
exports.updateUser = function(req, body) {
    // this contains the updated user json
    var updatedUser = req.body;

    // here we lookup that user by the email field
    User.findOne({ 'email': updatedUser.email }, function (err, user) {
      if(err) {
        return res.json({error: "Error fetching user" });
      }
      else {
        // we succesfully found the user in the database, update individual fields:
        user.name = updatedUser.name;
        user.save(function(err) {
            if(err) {
                return res.json({error: "Error updating user"});
            } else {
                console.log("success updating user");
                res.json(updatedUser);
            }
        })
      }
    });

};

編集*どうやらMongooseには実際にはfindOneAndUpdateメソッドがあり、モデルを更新するために上記で書いたのと本質的に同じことを行います。あなたはそれについてここで読むことができます

于 2013-03-28T13:51:01.253 に答える
0

jQueryを使用してクライアント側でJSONオブジェクトを構築することはありません。その実装はサーバー側に任せることをお勧めします。post変数からjsonオブジェクトを簡単に作成し、オブジェクトを保存できます。また、これが必要かどうかはわかりませんが、マングースはコレクションドキュメントのモデルを作成するのに役立つ優れたODM(オブジェクトドキュメントマッパー)です。

于 2013-03-27T05:35:16.180 に答える
0

express-orm-mvcをお試しください mvcテンプレートでexpressとormをサポートするシンプルなパッケージ

于 2014-03-10T09:55:12.140 に答える