1. 程式人生 > >nodejs框架express4.2 簡單入門

nodejs框架express4.2 簡單入門

管理工具 是不是 版本 img googl js框架 erro easy ejs

Perface

今天看了一些nodejs,《nodejs開發指南》。看到了expres的時候,由於那本書用的express版本號跟我的不一樣。導致非常多功能不能實現。所以就各種google,如今就把這個流程記錄下來。遇見的bug和一些原理。

要玩express就要裝nodejs,假設你的操作系統是centos6.5能夠參考我之前寫的博客centos6.5安裝nodejs。其它操作系統也大同小異。能夠看Node Installation

Bug

1 Express Command not found
最初操作:跟著《nodejs開發指南》敲npm install -g express,安裝好了。就在linux命令行敲express --help就出現上面的原因了。
解決方法:在安裝一個包npm install -g express-generator
原因:express3+已經把創建一個APP的功能分離出來為express-generator,沒它你創建不了應用程序
2 express -t ejs microblog創建的不是ejs模板引擎而是jade模板引擎
最初操作:跟著《nodejs開發指南》在命令行敲express -t ejs microblog是用來創建應用程序的,應用程序的名字叫microblog、模板引擎是ejs
出現情況:可是通過查看microblog文件夾中的package.json中知道創建出來的不是ejs模板而是jade模板引擎
解決方法:版本號不一樣,用錯命令了,應該是express -e microblog(-e就是ejs模板)
3 node app.js沒效果
最初操作:跟著《nodejs開發指南》在命令行敲node app.js,然後就用瀏覽器訪問監聽的3000port
出現情況:訪問不到頁面
解決方法:版本號不一樣。用錯命令了。應該是npm start

Summary

事實上簡單入門式用express ejs模板過程例如以下

  1. npm install -g express && npm install -g express-generator
  2. express -e microblog
  3. cd microblog & make install
  4. npm start
  5. 瀏覽器訪問localhost:3000
成功的頁面例如以下:
技術分享圖片

想要更加詳細了解,能夠查看express幫助文檔 Express Guide

Theory

事實上在之後我還遇見一個bug,這個不是版本號的問題,就是我在linux又一次開一個終端來輸入命令的時候,當前文件夾是/home/monkindey/Desktop事實上就是在桌面,當我輸入npm start時候就報錯了“Error:ENOENT,open‘/home/monkindey/Desktop/package.json‘”,當時我就認為是不是要切換到express應用程序的文件夾去,果然,當切換到應用程序的文件夾中,再運行命令npm start就成功了。然後我就有了困惑了。

  1. 第一、為什麽我npm start要切換到應用程序的文件夾裏才幹運行
  2. 第二、為什麽我npm start的時候到底是跑應用程序哪個文件?

以下讓我來簡單說一下

  1. npm 是nodejs的包管理工具,能夠使用它來下載包、查看文件等功能
  2. 用express創建的應用程序是一個符合CommonJS規範的一個nodejs包
  3. npm運行的時候會讀取當前文件夾的package.json文件。這個也就是我上面那個bug出現的原因
  4. 運行npm start事實上是運行package.json中的script相應的對象中的start屬性所相應的命令行,以下是我應用程序的package.json:
    技術分享圖片

    所以事實上假設吧package.json中的start改成monkindey或者其它字符串,然後你在linux命令行敲上npm monkindey/或者其它。程序照樣會運行

事實上package.json就是一個配置文件。僅僅是我們之前用的xml格式,可是在nodejs用的是json能夠,簡單easy理解。

從package.json我們能夠看出來npm start事實上運行的是./bin/www裏面是創建一個server然後監聽3000port,所以我們能夠在瀏覽器中通過輸入"localhost:3000"來訪問應用程序

Reference

Express command not found
node.js express npm start
Express Getting started
《nodejs開發指南》

nodejs框架express4.2 簡單入門