Node.js is a popular server platform that allows coding in JavaScript.
By using Node.js in combination with SmartClient, you can use the same language for both client and server-side programming.

Our new SmartClient Server for Node.js provides many of the features of the SQLDataSource from our Java server, including all CRUD operations, sorting and filtering.
Server-side DataSources are expressed in a XML (.ds.xml) or JSON (.ds.js) format analogous to the format used by our Java server.

We've also got support for the NPM package manager.
smartclient-node is a package you can use to run your SmartClient server in minutes.

Installation

1. Install Node.js
2. Create new directory
Code:
mkdir my-server && cd my-server
3. Initialize your project (create package.json file)
Code:
npm init
4. Add smartclient-node dependency to your project
Code:
npm install -S smartclient-node
Installation process will ask following questions:
Code:
Destination directory [/home/user/my-server/]:
Download SmartClient evaluation runtime (WARN: overwrites existing web/isomorphic directory)? [yes]:
Install sample (WARN: overwrites existing index.html file)? [yes]:
Accept defaults. You can always repeat installation by running
Code:
./node_modules/.bin/smartclient-install
5. Start your server
Code:
./node_modules/.bin/smartclient-server
6. Go to your browser and access localhost:8080

Configuration

Installation process creates configuration file conf/config.properties. Update this file with your values.
Server should be restarted for changes to take effect.

Current status
  • Supports RPC calls without method arguments
    • Queued operations (more than one operation in a single HTTP request)
  • Supports SQL data sources for MySQL and PostgreSQL
    • CRUD operations
    • Queued operations (more than one DataSource operation in a single HTTP request)
    • Paging
    • Sorting
    • Simple filtering
    • Filtering with Advanced criteria
  • Supports JSON data source: data is stored in file in JSON format
    • CRUD operations
    • only supports client-side filtering and sorting
  • Supports REST calls

Try it now and tell us how did it go! Your feedback is highly welcome! Post your thoughts, suggestions, questions and requests right here in this thread.

Open-source

smartclient-node is released under LGPL-3.0 license.
Source code can be found on GitHub:
https://github.com/isomorphic-software/smartclient-node
https://github.com/isomorphic-software/smartclient-rpc

If you see how to improve it - do it. Fork it. Create pull request. Post code snippet.
Your contributions make this project better for everyone.

Support

This project is not currently covered by standard support agreements, but we offer very affordable consulting and support services by arrangement - use Contact Us page to get started.