ジェネレータを使ってスクラッチからアプリを作成

Railwayジェネレータを使用すると、自動的にたくさんのファイルを生成することができます。
各ジェネレータは、以下のコマンドで呼び出すことができます。

railway generate GENERATOR_NAME

または、ショートカットを使うと以下の通りです。

railway g GENERATOR_NAME

標準でmodel、controller、scaffold(crud)ジェネレータが使用可能です。

controllerジェネレータ

railway g controller controllername actionName anotherActionName

以下のファイルが生成されます。

exists  app/
exists  app/controllers/
create  app/controllers/controllername_controller.js
exists  app/helpers/
create  app/helpers/controllername_helper.js
exists  app/views/
create  app/views/controllername/
create  app/views/controllername/actionName.ejs
create  app/views/controllername/anotherActionName.ejs

コントローラーファイルの中身は以下の通りです。

load('application');

action("actionName", function () {
});

action("anotherActionName", function () {
});

modelジェネレータ

railway g model user name password

以下のファイルが生成されます。

exists  app/
exists  app/models/
create  app/models/user.js

続けてmongooseスキーマが生成されます。

/**
 * User
 */
var UserSchema = new Schema;
UserSchema.add({
    name: { type: String },
    password: { type: String }
});
mongoose.model("User", UserSchema);
module.exports["User"] = mongoose.model("User");

標準ではStringが指定される為、フィールドタイプを明示的に指定したい場合には

railway g model user name password createdAt:date activated:boolean

scaffoldジェネレータ

最も強力なジェネレータで、すべてのアクションが記述されたコントローラー、ビュー、スキーマ定義、およびルート定義と、すぐに使用できるリソースを生成します。coffee-scriptsを使用して生成することも可能です。

~: ) railway g scaffold post title content createdAt:date
exists  app/
exists  app/models/
create  app/models/post.js
exists  app/
exists  app/controllers/
create  app/controllers/posts_controller.js
exists  app/helpers/
create  app/helpers/posts_helper.js
create  app/views/layouts/posts_layout.ejs
create  public/stylesheets/scaffold.css
exists  app/views/
create  app/views/posts/
create  app/views/posts/_form.ejs
create  app/views/posts/new.ejs
create  app/views/posts/edit.ejs
create  app/views/posts/index.ejs
create  app/views/posts/show.ejs
patch  /tmp/her/config/routes.js

scaffoldジェネレータを使えば、一瞬でアプリケーションのプロトタイプを作ることができるでしょう。