Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    yode-serverpublic

    Yode-server

    NPM

    Setup

    First, install MongoDB and Memcached and run both

    Yode-server also requires node.js version 0.10 and above

    Also we need Imagemagick for operations above images

    mkdir yode
    cd yode
    npm install yode-server
    npm start yode-server
    

    Usage

    The installer creates www directory. Or you can choose another name during installation. This is where your projects to be placed. In www/localhost you’ll find a sample project.

    All backend files are located in www/localhost/modules,

    all static files (css, images, browser-js) are in www/localhost/static,

    html-templates are in www/localhost/view

    Each new project requires separate directory inside www. The name of project directory must be same as host name. For example: if your project hostname is www.example.com the path should be www/www.example.com

    Command

    npm start yode-server
    

    or

    node server
    

    starts all virtual hosts located in project directory. If you need to start only one of them, specify it:

    node server -p www.example.com
    

    run yode-server as daemon:

    node daemon
    

    Admin interface

    Admin panel default access (don't forget to add the port number in case it's not 80):

    http://localhost/admin/
    login: yeti
    pass: 111111
    

    Hello world (easy)

    // file: www/localhost/modules/hello.js
     
    // the pattern of a yode-module
    // object "server" contents connections to mongodb, memcached and has more useful properties 
    exports.Plugin = function(server) {
        this.server = server;
    }
     
    exports.Plugin.prototype.helloWorld = function(req, callback, auth) {
        callback('Hello World!')
    }

    in the browser http://localhost/hello:helloWorld/

    Hello world (MVC)

    Model code

    // file: www/localhost/modules/models/hello.js
     
    exports.Plugin = function(server) {
        this.server = server;
    }
     
    // as in the previous example but an object has passed to the callback.
    exports.Plugin.prototype.getHello = function(req, callback, auth) {
        callback({text: 'Hello World!'})
    }
     

    View, template code

    <!-- 
     
    file: www/localhost/view/hello.tpl
     
    uses jqtpl engine 
     
    -->
    <h1>${text}</h1>

    Controller code

    // file: www/localhost/modules/hellomvc.js
     
    exports.Plugin = function(server) {
        this.server = server;
    }
     
    exports.Plugin.prototype.helloWorld = function(req, callback, auth) {
        
        var me = this
        me.server.getModel('models.hello').getHello(req, function(data, e) {
            me.server.tpl('hello.tpl', data, function(code) {
                callback(code);
            })
        })
    }
     

    See the result: http://localhost/hellomvc:helloWorld/

    You can also use the model as REST-service in external apps: http://localhost/models.hello:getHello/

    "Hello World" on CMS virtual pages

    1. Log into admin interface: http://localhost/admin/ (yeti:111111)
    2. Go to Start -> Site tools -> Pages
    3. Click (+) icon
    4. Enter page name
    5. Select template
    6. Click [Add] - button (in right-bottom panel Page blocks)
    7. Enter hellomvc:helloWorld to field Content type
    8. Save

    Now you can see your "Hello World" on the new page (the path is in the second column of pages tree in admin-panel)

    install

    npm i yode-server

    Downloadsweekly downloads

    18

    version

    0.2.4

    license

    LGPL-2

    repository

    githubgithub

    last publish

    collaborators

    • avatar