emmmmmmm...
我寫是為了記錄自己狀態的..就這樣
express先就是會使用npm命令裝吧,npm init /npm install package_name -save 之類的
然后package.json文件呢會有所有包的配置信息,上傳的時候就不需要把包上傳了,只要有package.json就可以了,再npm install就好了。
建立js文件? 首先要var x = require('package_name'),也可以是自己封裝的包。
然后運行是用cmd? node app.js,最好有個consloe,判斷端口是否可用。
啟動腳本index.js的app.get方法,用于指定不同的訪問路徑所對應的回調函數,這叫做“路由”(routing)//但是其實不是很能理解router? jerry叫理解成為一個地方到另一個地方的行為。
但是不是類似于一下這種就能當做一個路由?
app.get('/customer',function(req,res){
res.send('customer page');
});
然后可以把router封裝起來,用的時候就是
varroutes=require('./routes')(app);
啊啊,突然懂了
Express框架的核心是對http模塊的再包裝:
之前用node.js寫
var http = require("http");
var app = http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello world!");
});
app.listen(3000, "localhost");
express再改寫就是:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello world!');
});
app.listen(3000);
中間件這個東西一開始有點接受無能,我現在的理解就是一個傳遞參數的函數。
function uselessMiddleware(req, res, next) {
next();
}
//一點點小方法
1.use方法就是注冊中間件的方法。
2.all 方法感覺有點像執行以下每一步之前都必須執行的步驟?類似于全局那種感覺?
3.模式匹配? emmmm? 大概是用來過濾的吧,以后用到再說
4.set就簡單多啦,感覺就是直接設置變量。
5.response.redirect:網址重定向
6.response.sendFile:發送文件
7.response.render:渲染網頁模板
寫一個小例子:
var express = require('express');
var app = express();
上面代碼首先加載express模塊,賦給變量express。然后,生成express實例,賦給變量app。
接著,設定express實例的參數。
// 設定port變量,意為訪問端口??
app.set('port', process.env.PORT || 3000);//jerry說了? 這個是避免占用的意思
// 設定views變量,意為視圖存放的目錄
app.set('views', path.join(__dirname, 'views'));
// 設定view engine變量,意為網頁模板引擎
app.set('view engine', 'jade');
app.get('/', function(req, res) {
res.send('Hello World');
});
// 設定靜態文件目錄,比如本地文件
// 目錄為demo/public/images,訪問
// 網址則顯示為http://localhost:3000/images
app.use(express.static(path.join(__dirname, 'public')));
上面代碼中的set方法用于設定內部變量,use方法用于調用express的中間件。
最后,調用實例方法listen,讓其監聽事先設定的端口(3000)。
app.listen(app.get('port'));
靜態網頁模板:一般放在views目錄下,send變成sendfiles('path');
動態網頁模板:需要引用模板引擎,其實我不是很會(大概就是要配置引擎,運行引擎,再渲染一下吧)
新建數據腳本:渲染是指將數據代入模板的過程,像這種需要加載的,都是需要exports的//還有那個網頁重新布局那里沒有看懂 明天問問seven
靜態文件目錄:app.use(express.static('public'));
router用法我真是...默默查api好啦
后面還有個上傳文件也是不會...明天還是要問seven...