Comments (15)
So you can require('./app')
from external files and get the express app that is not listening on any port (think unit tests and the like).
from generator.
My system sees www as a Unix executable (yes, I see the server config JS in the source of it). Seems to be an odd convention to adopt, no?
from generator.
No. It is not odd.
On May 8, 2014 9:16 AM, "Kevin Suttle" [email protected] wrote:
My system sees www as a Unix executable. Seems to be an odd convention to
adopt, no?—
Reply to this email directly or view it on GitHubhttps://github.com//issues/25#issuecomment-42570300
.
from generator.
Helpful.
Care to elaborate?
from generator.
you'd want to separate your app logic and actually running your app. for development, /bin/www
is the basics to get things going. but in production, you'd really want to use something more robust like https://github.com/unitech/pm2 and https://github.com/koajs/cluster for error handling, clustering and load balancing, etc. each app has its own best way of doing it
from generator.
Right, which validates my original comment of it being an odd convention, if it's per application. Tomato, tomahto. ¯\_(ツ)_/¯
from generator.
How is it an odd convention? the more important aspect is separation, but it's nice to run the server without typing node
from generator.
Why is it nice to run the server without typing node?
Is there any difference between "node app" and "npm start"?
from generator.
if you distribute your app as my-app
, you can then do npm i -g my-app; my-app
from generator.
FYI everyone, the generator is supposed to demonstrate good practices. If you don't agree with how the generator works, you don't have to use it. The point of the generator is to generate an app base for you that follows good practices with npm and the build tools.
from generator.
Yes, I'm thinking about what's the better practice.
It seems a linux like path and can't cross platform. I think if it's better to separate shell script part and JavaScript part into individual files? e.g:
./bin/www:
#!/usr/bin/env node www.js
./bin/www.cmd:
node.exe www.js
.bin/www.js:
var app = require('../app');
app.set('port', process.env.PORT || 3000);
from generator.
It seems a linux like path and can't cross platform.
Just because there is a shebang file, doesn't make in linux-only. You can run it on Windows using node bin/www
, but really you should just use npm start
. The bin/www
is a valid JavaScript file node.js can run.
This will work just fine when you publish your app to npm and npm install -g
it, because npm will wrap that bin/www
script into a .cmd
file on Windows.
from generator.
OK, @dougwilson , thank you for your help!
from generator.
I was just wondering what's the best practice to use this new startup style with something like Socket.io 1.0 that needs an instance of http.Server()
What I ended up is something like
var server = require('https').Server(httpsOptions, app);
io = require('socket.io')(server);
app.listen = function () {
return server.listen.apply(server, arguments);
};
It works but it looks dirty.
from generator.
@igor10k make a file named like io.js
in the root and export the io
server. Then in www
, require it (like how app.js
is required) and glue them together.
io.js
:
var io = require('socket.io')() // yes, no server arg here; it's not required
// attach stuff to io
module.exports = io
bin/www
:
#!/usr/bin/env node
var debug = require('debug')('{name}');
var app = require('../app');
var io = require('../io');
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});
io.attach(server);
from generator.
Related Issues (20)
- tanks
- Opinionless, minimalist variant HOT 4
- Should the node version < 6 be opted out in travis.yml ? HOT 3
- bash: express: command not found... HOT 3
- fix lodash vulnerability HOT 2
- is this still maintaining? HOT 1
- CORS HOT 1
- Include .gitignore file as part of the initial project setup HOT 1
- myapp HOT 1
- Instructions on how to compile the css engines HOT 4
- option to generate mjs HOT 1
- Recommending nodemon instead of npm start.
- Sass Generator not working out of the box HOT 1
- To bump `pug` to latest >3.x.x
- To automate maintenance of dependency versions in `express-cli.js` HOT 3
- EACCES: permission denied HOT 1
- Dire need for a major update/overhaul HOT 5
- Is express-generator is deprecated or out of maintenance? HOT 1
- Running tests locally fails
- sass instead of node-sass
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from generator.