Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
NW.js use express and similar web frameworks
Before you start developing an express-based NW.js(node-webkit) application, you should see About Node.js server side script in nw.js, as it provides some good ways to replace those frameworks.
But if you already have an express-based webapp, and you want NW.js to use it as desktop app, you might encounter problems.
First, express provide a web server and doesn't have an
index.html file, so what should you do with the
The solution is that you can create a
index.html file, and use the following code to run the system:
In NW.js you can use node modules in html files, for more details on this, see: Using Node modules
Second, express 3.x/4.x use the
./bin/www folder to start a web server, so if you run the
app.js it will fail to start. If you want run a node app directly, not through a html file, you can use the following way.
We can setup
node-main property is a command which will be call when NW.js app start, for more details see: Node main.
And for express, we should also setup the
main property to
http://localhost:3000. If we setup a filename to that, NW.js will open it with the file protocol, so you will see the source code. If you setup a url with http protocol, NW.js will open it just like a browser.
"node-main": "./bin/www", "main": "http://localhost:3000"
Put the above code in your package.json and run it. It seems OK but there is a problem (maybe a bug), in that NW.js shows a blank page. You must refresh the page, and then the content will show.
location.href="http://localhost:3000/" in it, then setup the
If the application that you're working with doesn't contain a www binary, try something like this:
"node-main": "./app.js", "main": "http://localhost:3000"
This worked with the mean-stack-relational application (https://github.com/jpotts18/mean-stack-relational) which doesn't have a www binary.