emmmmmmm...
我寫是為了記錄自己狀態(tài)的..就這樣
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方法,用于指定不同的訪問路徑所對應(yīng)的回調(diào)函數(shù),這叫做“路由”(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);
中間件這個東西一開始有點接受無能,我現(xiàn)在的理解就是一個傳遞參數(shù)的函數(shù)。
function uselessMiddleware(req, res, next) {
next();
}
//一點點小方法
1.use方法就是注冊中間件的方法。
2.all 方法感覺有點像執(zhí)行以下每一步之前都必須執(zhí)行的步驟?類似于全局那種感覺?
3.模式匹配? emmmm? 大概是用來過濾的吧,以后用到再說
4.set就簡單多啦,感覺就是直接設(shè)置變量。
5.response.redirect:網(wǎng)址重定向
6.response.sendFile:發(fā)送文件
7.response.render:渲染網(wǎng)頁模板
寫一個小例子:
var express = require('express');
var app = express();
上面代碼首先加載express模塊,賦給變量express。然后,生成express實例,賦給變量app。
接著,設(shè)定express實例的參數(shù)。
// 設(shè)定port變量,意為訪問端口??
app.set('port', process.env.PORT || 3000);//jerry說了? 這個是避免占用的意思
// 設(shè)定views變量,意為視圖存放的目錄
app.set('views', path.join(__dirname, 'views'));
// 設(shè)定view engine變量,意為網(wǎng)頁模板引擎
app.set('view engine', 'jade');
app.get('/', function(req, res) {
res.send('Hello World');
});
// 設(shè)定靜態(tài)文件目錄,比如本地文件
// 目錄為demo/public/images,訪問
// 網(wǎng)址則顯示為http://localhost:3000/images
app.use(express.static(path.join(__dirname, 'public')));
上面代碼中的set方法用于設(shè)定內(nèi)部變量,use方法用于調(diào)用express的中間件。
最后,調(diào)用實例方法listen,讓其監(jiān)聽事先設(shè)定的端口(3000)。
app.listen(app.get('port'));
靜態(tài)網(wǎng)頁模板:一般放在views目錄下,send變成sendfiles('path');
動態(tài)網(wǎng)頁模板:需要引用模板引擎,其實我不是很會(大概就是要配置引擎,運行引擎,再渲染一下吧)
新建數(shù)據(jù)腳本:渲染是指將數(shù)據(jù)代入模板的過程,像這種需要加載的,都是需要exports的//還有那個網(wǎng)頁重新布局那里沒有看懂 明天問問seven
靜態(tài)文件目錄:app.use(express.static('public'));
router用法我真是...默默查api好啦
后面還有個上傳文件也是不會...明天還是要問seven...