Ce n' “./bin/www” faire en Express 4.x?
J'ai juste commencé à apprendre Express 4.0 dans mon Node.js app, et j'ai trouvé qu'il a généré ./bin/www
fichier, sur lequel le serveur d'application et les paramètres de port sont écrits et tout les autres comme middleware et de routage est défini dans ./app.js
fichier.
Cependant, je ne suis pas sûr de ce que cela ./bin/www
n'. J'ai utilisé Express 3.x et j'ai toujours défini serveur et les paramètres de port ainsi que le routage et le middleware sur le identique ./app.js
fichier, et lancé mon nœud app avec node app.js
. Alors, quel est le point de l'utilisation de la ./bin/www
? Il ne fait que le serveur et le port de la définition des autres?
Droit maintenant, quand j'ai créer le package à l'aide de l'express-générateur, le package.json
comprend la définition suivante:
"scripts": {
"start": "node ./bin/www"
}
Cependant, je me demande si je dois lancer mon application en utilisant node ./bin/www
, ou npm start
. Quelle commande dois-je exécuter pour lancer mon application?
Et aussi, quand je déployer mon application sur heroku, que dois-je écrire dans la Procfile
fichier? Est web: node app.js
assez?
Vous devez vous connecter pour publier un commentaire.
Dans Express 3.0, vous devez normalement utiliser
app.configure()
(ouapp.use()
) pour mettre en place le nécessaire middleware dont vous avez besoin. Ceux middleware spécifiés sont regroupés avec d'Express 3.0.Exemple:
Dans Express 4.0 cependant, tous les middlewares ont été enlevé de sorte qu'ils peuvent être maintenus et mis à jour indépendamment de la base Express (à l'exception de la statique middleware), ils ont donc besoin d'être appelé séparément (ce que vous voyez dans
app.js
).La
bin/
répertoire sert un endroit où vous pouvez définir vos différents scripts de démarrage. Lewww
est un exemple pour démarrer l'express app comme un serveur web.En fin de compte, vous pourriez avoir différents scripts comme
test
,stop
, ourestart
, etc. Ayant cette structure vous permet d'avoir différentes configurations démarrage, sans bachotage tout enapp.js
.La bonne façon de commencer votre Express app est:
De déployer une Express 4.x application de Heroku, ajoutez ceci à votre
Procfile
:www
. Je ne suis pas sûr pourquoi elle est ainsi nommée de cette façon, mais - peut-être nommé d'après le World Wide Web?nodemon ./bin/ww.js
y compris la.js
extension sinon qu'il était en train de courir commewww index.js
app.js
"; je ne suis pas sûr de ce que cela signifie. Peut-être que vous avez voulu dire “depuis ce que vous voyez dansapp.js
”?Nœud applications comme l'Express 3.x utilisation non-standard des fichiers de démarrage
app.js
, mais c'est le mauvais fichier pour l'exécuter.package.json
ala ligne de commande de démarrage. Il est non-trivial, parce que potentiellement contient une ligne de commande, et pas seulement un chemin d'accès vers le fichier starter.
si vous utilisez express-générateur, il suffit de regarder votre fichier local,
./bin
, il estwww
fichier à l'intérieur de l' ./bin. Ainsi, lorsque vous exécuteznode ./bin/www
, node.js va exécuter le code àwww
fichier. Rien de fantaisie.Sur Windows, utilisez cette commande:
de Procfile
web: node ./bin/www
et vérifier si cela fonctionne avec
foreman start
.L'application devrait être disponible sur le port 5000