欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

鎽哥潃鐭冲ご杩囨渤-nodejs鐨別xpress妗嗘灦

更新时间: 2014-01-05 01:51:35 责任编辑: Author_N1

 

鎽哥潃鐭冲ご杩囨渤---nodejs鐨別xpress妗嗘灦
logdown鍗氭枃閾炬帴
浠婂ぉ鍗氭枃姣旇緝闀匡紝灏辨病閲嶆柊鎺掔増浜嗭紝娆㈣繋鍚勪綅鎴砽ogdown鍗氭枃鐨勫湴鍧€銆?

浠婂ぉ瀹堕噷鏈変簨娌′笂鐝紝缁堜簬鍙互濂藉ソ鍐欎竴绡囧叧浜庢€荤粨鐨勫崥鏂囦簡銆?
杞溂锛屼綔涓哄洟闃熼」鐩鐞嗙殑宸ヤ綔宸茬粡2涓湀浜嗭紝杩欐湡闂村洟闃熸瘡涓ゅ懆涔熼兘浼氬仛涓€娆℃€荤粨锛屼絾鏄垜瑙夊緱鎴戜篃璇ヨ嚜宸辩嫭鑷€荤粨涓嬭繖涓や釜鏈堝伐浣滀簡锛岃繖涓や釜鏈堜腑鍥㈤槦鏄瓨鍦ㄥ緢澶氶棶棰橈紝姣曠珶鎺ヨЕ椤圭洰绠$悊鏂归潰鐨勯兘鏄€氳繃涔︽湰鍜屾晱鎹峰ぇ浼氥€佹矙榫欒幏寰楃殑鐞嗚鐭ヨ瘑锛屼粯璇镐簬瀹炶返鍚庤偗瀹氫細鏈変竴浜涢棶棰橈紝杩樺ソ涔嬪墠鎵€鍦ㄧ殑鍥㈤槦寰堝杽浜庢€荤粨锛屾墍浠ュ浜庝竴浜涢棶棰樻垜杩樻槸浼氭湁涓€浜涙兂娉曡鎬庝箞澶勭悊锛岀‘瀹炴槸鏈変竴浜涗綔鐢ㄧ殑銆?
姣斿鎴戜滑寮€灞曟晱鎹峰紑濮嬮噰鍙栫殑鏄€愭澧炲姞鐨勬柟寮忚繘琛岋紝鐒跺悗璁╅棶棰樺嚭鐜帮紝鐒跺悗鏍规嵁闂寮曞叆鐩稿簲鐨勬帾鏂斤紝璁╁洟闃熸垚鍛樻劅瑙夊埌鏁忔嵎鐨勫悇涓疄璺电殑鐪熷疄浣滅敤锛?

    1. 鍍忎换鍔″垎瑙h繃浜庝富瑙傦紝鑰屼笖涓嶅埌浣嶏紝鍥犳瀵逛簬鏈変簺浜烘棤娉曟帴鍙楋紝鎵€浠ュ紩鍏ヤ簡浠诲姟鍒嗚В浼氳鍜屼换鍔″垎瑙e崱鐗岋紱
    2. 鍍忓洟闃熸€讳綋杩涘睍鏃犳硶鎶婃彙锛屾棤娉曟劅瑙夊埌杩欎釜sprint鏄惁鑳芥寜鏃跺畬鎴愶紝鎵€浠ュ紩鍏ヤ簡鐕冨敖鍥撅紝鑰屼笖鍥犱负鎴戜滑鏈変簺闇€姹備細姣旇緝绱ф€ヨ鍋氾紝鎵€浠ユ湁鏃跺€欎細鍦ㄤ竴涓猻print涓姞绐佸彂浠诲姟锛堟寜鏁忔嵎鐨勬渶浣冲疄璺垫潵璇翠笉鑳藉姞锛屼絾鏄紝鎴戜滑鎯呭喌姣旇緝鐗规畩锛夛紝鎵€浠ユ垜鎶婄噧灏藉浘璧剁揣浜嗕笅锛屾瘡娆″鍔犱换鍔¢兘浼氫骇鐢熶竴涓敮榻匡紝姣忎釜閿娇閮借璁板綍鍘熷洜锛屽苟涓斿湪鎬荤粨浼氳璁鸿濡備綍瀵瑰奖鍝峴print杩涘害鐨勬牴婧愭柦鍔犲奖鍝嶏紱
    3. 鍍弒print涓紝鍥㈤槦鎴愬憳瀵逛簬闇€姹傚拰璁捐閮戒笉鏄緢浜嗚В锛屾墍浠ヤ箣鍚庨噰鍙栫殑鏄璁′笉鍦ㄦ槸鎴戜竴涓汉鏉ュ仛锛屼篃鍙樻垚涓€涓猻print浠诲姟锛屾瘡涓汉閮藉彲浠ユ帴鎵嬭繖涓换鍔★紝浠庤崏鍥惧埌鍘熷瀷鍥惧埌鍘熷瀷鍥捐璁°€備笉杩囪繖鏍峰張甯︽潵闂灏辨槸鍥犱负涓嶇啛鎮夊浣曞仛璁捐甯︽潵鐨勮繘搴﹀彉鎱紝杩斿伐鍙樺銆?
   
   
杩欎簺閮芥槸杩囩▼涓牴鎹嚭鐜扮殑闂鎯冲嚭鐨勮В鍐冲姙娉曪紝杩樻湁涓€浜涢棶棰樻殏鏃朵緷鏃ф湭瑙e喅锛岃€屼笖寰堣浜哄ご鐤笺€?

    1. 棣栧厛灏辨槸涓嶄俊浠绘劅鐨勯棶棰橈細缁忓父鏈変竴浜涘伐浣滐紝鍥犱负杩涘害鐨勫師鍥狅紝璁╀粬浠潵鍋氫細鎷栨參杩涘害锛屾墍浠ユ垜缁忓父鎶婅繖浜涘伐浣滃湪鍔犵彮涓畬鎴愶紝杩欐牱鐨勫嵃璞″氨鏄垜鎶婇毦鐨勫叏閮藉仛瀹屼簡锛屽墿涓嬬畝鍗曠殑缁欎粬浠仛锛岃繖鏄浠栦滑鐨勪笉淇′换锛屾墍浠ョ幇鍦ㄤ篃灏介噺鎶婁竴浜涜璁″伐浣滆浠栦滑鍋氾紝浣嗘槸纭疄褰卞搷鍒颁簡杩涘害锛涜繕鏈夊氨鏄湁鏃跺€欎粬浠亣鍒伴棶棰樻椂鍊欎細鍚戞垜瀵绘眰甯姪锛屼絾鏄垜涓汉鐨勪範鎯槸鐣寗宸ヤ綔娉曪紝鎵€浠ョ幇鍦ㄦ垜鐨勭暘鑼勯挓浼氱粡甯歌鎵撴柇锛屾渶楂樼殑鏃跺€欐垜涓€澶╁彲浠ュ畬鎴?9涓暘鑼勯挓锛岀幇鍦ㄤ竴澶╁彧鏈?-3涓暘鑼勯挓銆傚鑷存湁鏃跺€欏繖姣旇緝閲嶈鐨勪簨鎯呯殑鏃跺€欙紝鎴戜細璁╀粬浠瓑涓€绛夛紝杩欐牱娌℃湁绔嬮┈寰楀埌鍝嶅簲灏卞鑷存弧鎰忓害銆佷俊浠绘劅涓嬮檷锛岃繖涓棶棰樻垜鏆傛椂閲囧彇鐨勫姙娉曞氨鏄敖閲忓湪鍏佽鐨勬椂闂磋寖鍥村唴鍘昏В鍐充粬浠垰鍒氭彁鍑虹殑闂锛?
    2. 杩樻湁灏辨槸鎬佸害銆佺Н鏋佹€с€佽矗浠绘劅鐨勯棶棰樸€傛湁鏃跺€欐槑鐭ラ亾鑷繁鐨勪换鍔℃病瀹屾垚锛屼絾鏄嵈渚濇棫浣庢晥鐜囥€佽€屼笖浣庢晥鐜囧悗鎶佃Е鍔犵彮銆傝繖涓棶棰樻垜瑙夊緱姣旇緝涓ラ噸锛屾妧鏈殑闂杩橀兘鏄彲浠ュ讥琛ョ殑锛屼絾鏄€佸害涓婄殑灏辨瘮杈冮夯鐑︺€傛垜鐜板湪鎯冲埌鐨勬柟娉曞氨鏄悜缁勭粐瀵绘眰甯姪锛岃涓€浜涙瘮杈冩湁璧勫巻鏉ラ€氳繃濞佷俊绋嶅井鏂藉姞涓€浜涘己鍒舵€х殑瑕佹眰锛?
    3. 鍐嶈繕鏈夊氨鏄伐浣滆鐪熺殑闂锛屾垜鏄瘮杈冨笇鏈涘洟闃熻兘鍋氬ソ鍗曞厓娴嬭瘯銆佽嚜娴嬨€佷氦鍙夋祴璇曘€佷唬鐮佽蛋鏌ュ伐浣滅殑锛屼絾鏄幇鍦ㄥ洟闃熻矊浼煎緢闅炬墽琛岋紝鎴栬杩欏氨鏄仛椤圭洰鍜屽仛浜у搧鐨勫尯鍒€傝繖涓棶棰樻劅瑙夋病閭d箞濂借В鍐筹紝鍙兘鍏堜粠鑷祴寮€濮嬶紝鑷冲皯淇濊瘉鑷繁鍋氱殑鍩烘湰鍔熻兘涓嶄細鏈夐棶棰橈紝涓嶈杩欎釜鍔熻兘瀹屽叏涓嶈兘鐢紝杩樿娴嬭瘯鍛婅瘔浣犮€?
   
涓婂懆浜斾篃鍜岄瀵间氦娴佷簡寰堜箙锛屼粬璇寸殑璇濇垜琛ㄧず寰堣禐鍚屻€傛瘯绔熸垜鎵嶅垰宸ヤ綔2骞达紝瀵逛簬绠$悊杩欏潡瀹屽叏鏄病鏈夌粡楠岀殑锛屾墍浠ョ粍缁囦笂鍙互鍏佽鎴戠姱閿欙紝浣嗘槸鐘敊鍚庝竴瀹氳鎬荤粨锛屾€荤粨鍚庝篃涓€瀹氳钀藉湴銆傝繖鏄竴涓懜鐫€鐭冲ご杩囨渤鐨勯樁娈碉紝涓€姝ヨ笍閿欏鏋滀笉绾犳锛屽氨浼氳蛋鍚戞璺€?

----鍒嗗壊绾?---
涔嬪悗浼氳ˉ涓€绡囧崥鏂囦粙缁峢ttp妯″潡锛岄偅鍧楁槸姣旇緝搴曞眰鐨勬帴鍙o紝灏卞儚servlet涓€鏍凤紝鏈変簡涓€浜涙垚鐔熺殑妗嗘灦鍚庝笉鐢ㄥ啀閭d箞楹荤儲鐨勫幓鍋氶」鐩簡锛屼絾鏄繕鏄鐞嗚В搴曞眰鏄浣曟搷浣滅殑銆?
# 涓轰粈涔堜娇鐢╡xpress
nodeJs鐨刪ttp妯″潡鐨勬搷浣滅浉瀵规潵璇存瘮杈冮夯鐑︼紝鍥犱负瀹冨叾瀹炴槸搴曞眰鐨勬帴鍙c€傚氨鍍廽ava鐨剆ervlet灏辨槸搴曞眰鎺ュ彛锛宻truts2+spring+hibernate灏辨槸閫氳繃妗嗘灦鐨勫皝瑁咃紝鎻愰珮浜嗛珮灞傛帴鍙c€?
# Express鐨勫姛鑳?/span>
Express闄や簡涓?http 妯″潡鎻愪緵浜嗘洿楂樺眰鐨勬帴鍙e锛岃繕瀹炵幇浜嗚澶氬姛鑳斤紝鍏朵腑鍖呮嫭锛?

    1. 璺敱鎺у埗锛?
    2. 妯℃澘瑙f瀽鏀寔锛?
    3. 鍔ㄦ€佽鍥撅紱
    4.鐢ㄦ埛浼氳瘽锛?
    5.CSRF 淇濇姢锛?
    6.闈欐€佹枃浠舵湇鍔★紱
    7.閿欒鎺у埗鍣紱
    8.璁块棶鏃ュ織锛?
    9.缂撳瓨锛?
    10.鎻掍欢鏀寔銆?

# Express涓嶅叿鏈夌殑鍔熻兘
Express涓嶅儚ruby鐨凴ails閭f牱锛屽叿鏈夋ā鏉垮紩鎿庡拰ORM鐨勭浉鍏冲姛鑳斤紝express鍙槸瀵筯ttp杩涜浜嗗皝瑁咃紝涓€瀹氳姣旇緝锛屾垜瑙夊緱浠栨洿鍍廽ava鐨剆truts銆?
# Express鐨勫畨瑁?/strong>
鍏ㄥ眬妯″紡瀹夎锛歯pm install -g express
鏌ョ湅甯姪锛歟xpress --help
```
[David@localhost mircoblog]$ express --help

  Usage: express [options] [dir]

  Options:

    -h, --help          output usage information
    -V, --version       output the version number
    -s, --sessions      add session support
    -e, --ejs           add ejs engine support (defaults to jade)
    -J, --jshtml        add jshtml engine support (defaults to jade)
    -H, --hogan         add hogan.js engine support
    -c, --css <engine>  add stylesheet <engine> support (less|stylus) (defaults to plain css)
    -f, --force         force on non-empty directory
```
# 寮€濮婨xpress
## 寤虹珛Express椤圭洰
娉ㄦ剰锛宔xpress3.x鍚庣殑鐗堟湰锛屼笉鑳戒娇鐢╡xpress 鈥搕 ejs mircoblog绠€鍘唀js鐨勯」鐩簡锛屾牴鎹府鍔╀俊鎭彲鐭ワ紝瑕佷娇鐢╡xpress -e mircoblog锛屾搷浣滃涓嬫墍绀猴細
``` 鎺у埗鍙颁俊鎭?
[David@localhost studyDir]$ express -e mircoblog
   create : mircoblog
   create : mircoblog/package.json
   create : mircoblog/app.js
   create : mircoblog/public
   create : mircoblog/public/javascripts
   create : mircoblog/public/images
   create : mircoblog/public/stylesheets
   create : mircoblog/public/stylesheets/style.css
   create : mircoblog/routes
   create : mircoblog/routes/index.js
   create : mircoblog/routes/user.js
   create : mircoblog/views
   create : mircoblog/views/index.ejs

   install dependencies:
     $ cd mircoblog && npm install
   run the app:
     $ node app
```
## 鎻掑叆渚濊禆骞惰繍琛?/strong>
鐪嬫彁绀轰俊鎭彲浠ョ煡閬撳畨瑁呬簡鍝簺鐩綍鍜屾枃浠讹紝鐒跺悗杩樻彁绀烘垜浠幓瀵煎叆渚濊禆锛岀劧鍚庤繍琛屽簲鐢紝鎸夌収鎻愮ず缁х画鎿嶄綔銆?
```
[David@localhost studyDir]$ cd mircoblog && npm install
```
鎻愮ず淇℃伅姣旇緝澶氾紝灏变笉鍒椾妇浜嗐€?
鏃犲弬鏁扮殑 npm install 鐨勫姛鑳藉氨鏄鏌ュ綋鍓嶇洰褰曚笅鐨?package.json锛屽苟鑷姩瀹夎鎵€鏈塪ependencies 灞炴€т腑鎵€鎸囧畾鐨勪緷璧栥€?
```
[David@localhost mircoblog]$ node app.js
Express server listening on port 3000
```
##鎴愭灉


# 鐩綍缁撴瀯
Express3.0灏嗗師鏉ュ緢澶氶粯璁ょ殑璁剧疆閮介€氳繃鎻掍欢鏉ヤ娇鐢ㄤ簡锛屾墍浠ュ緢澶氬湴鏂归渶瑕佹敞鎰忋€?
姣斿锛岃浣跨敤partials闇€瑕佸彟澶栨彃鍏ヨ鎻掍欢锛屾搷浣滃涓嬶細
```
[David@localhost mircoblog]$ npm install express-partials
npm WARN package.json application-name@0.0.1 No README.md file found!
npm http GET https://registry.npmjs.org/express-partials
npm http 200 https://registry.npmjs.org/express-partials
npm http GET https://registry.npmjs.org/express-partials/-/express-partials-0.1.1.tgz
npm http 200 https://registry.npmjs.org/express-partials/-/express-partials-0.1.1.tgz
express-partials@0.1.1 node_modules/express-partials
```

## app.js锛屽伐绋嬬殑鍏ュ彛
娉ㄦ剰锛宔xpress涓渶瑕佸紑鍚痯artials銆俛pp.use(partials())銆?
```nodejs app.js
/**
* Module dependencies.
*/
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var partials = require('express-partials');

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(partials());
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});
```
### app.set
Express 鐨勫弬鏁拌缃伐鍏凤紝鎺ュ彈涓€涓敭锛坘ey锛夊拰涓€涓€硷紙value锛夛紝鍙敤鐨勫弬
鏁板涓嬫墍绀恒€?

1. port 锛氭湇鍔$殑绔彛銆?
2. view engine锛氳鍥炬ā鏉垮紩鎿庛€?
3. view cache锛氬惎鐢ㄨ鍥剧紦瀛樸€?
 
### app.use
Express 渚濊禆浜?connect锛屾彁渚涗簡澶ч噺鐨勪腑闂翠欢锛屽彲浠ラ€氳繃 app.use 鍚敤銆俛pp.configure涓惎鐢ㄤ簡4涓腑闂翠欢锛歮ethodOverride銆乺outer銆乻tatic 浠ュ強 errorHandler銆?
methodOverride鐢ㄤ簬鏀寔瀹氬埗鐨?HTTP 鏂规硶銆俽outer 鏄」鐩殑璺敱鏀寔銆俿tatic 鎻愪緵浜嗛潤鎬佹枃浠舵敮鎸併€俥rrorHandler 鏄敊璇帶鍒跺櫒銆?
### app.get('/', routes.index)
杩欐槸涓€涓矾鐢辨帶鍒跺櫒锛岀敤鎴峰鏋滆闂€?/ 鈥濊矾寰勶紝鍒欑敱 routes.index 鏉ユ帶鍒躲€?
### routes/index.js
routes/index.js 鏄矾鐢辨枃浠讹紝鐩稿綋浜庢帶鍒跺櫒锛岀敤浜庣粍缁囧睍绀虹殑鍐呭锛?
```nodejs routes/index.js
exports.index = function(req, res){
  res.render('index', { title: 'Express' });
};
```
app.js 涓€氳繃 app.get('/', routes.index); 灏嗏€?/ 鈥濊矾寰勬槧灏勫埌 exports.index鍑芥暟涓嬨€傚叾涓彧鏈変竴涓鍙?res.render('index', { title: 'Express' })锛屽姛鑳芥槸璋冪敤妯℃澘瑙f瀽寮曟搸锛岀炕璇戝悕涓?index 鐨勬ā鏉匡紝骞朵紶鍏ヤ竴涓璞′綔涓哄弬鏁帮紝杩欎釜瀵硅薄鍙竴涓睘鎬э紝鍗?title: 'Express'銆?
### index.ejs
杩欓儴鍒嗛渶瑕佽嚜宸变慨鏀筰ndex.ejs鍜屾坊鍔爈ayout.ejs,express3.x榛樿鏄笉浼氱敤杩欑妯″紡鐨勩€?
index.ejs 鏄ā鏉挎枃浠讹紝鍗?routes/index.js 涓皟鐢ㄧ殑妯℃澘锛屽唴瀹规槸锛?
鈥js routes/index.js
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
鈥?
瀹冪殑鍩虹鏄?HTML 璇█锛屽叾涓寘鍚簡褰㈠ <%= title %> 鐨勬爣绛撅紝鍔熻兘鏄樉绀哄紩鐢ㄧ殑鍙橀噺锛屽嵆 res.render 鍑芥暟绗簩涓弬鏁颁紶鍏ョ殑瀵硅薄鐨勫睘鎬с€?
### layout.ejs
妯℃澘鏂囦欢涓嶆槸瀛ょ珛灞曠ず鐨勶紝榛樿鎯呭喌涓嬫墍鏈夌殑妯℃澘閮界户鎵胯嚜 layout.ejs锛屽嵆 <%- body %>閮ㄥ垎鎵嶆槸鐙壒鐨勫唴瀹癸紝鍏朵粬閮ㄥ垎鏄叡鏈夌殑锛屽彲浠ョ湅浣滄槸椤甸潰妗嗘灦銆?
杩欐柟寮忓氨寰堝儚java鐨刣ecorators锛屼篃灏辨槸瑁呴グ妯″紡銆?
```ejs layout.ejs
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<%- body %>
</body>
</html>
```
# 璺敱鎺у埗鍣?/strong>
椤惧悕鎬濅箟锛屽氨鍍忚矾鐢卞櫒鏈夎矾鐢辫〃锛屽彲浠ユ牴鎹闂殑IP鍦板潃鎵惧埌鐩爣涓绘満锛屽綋杈撳叆璺緞鐨勬椂鍊欙紝灏辨槸閫氳繃璺敱鎺у埗鍣ㄦ潵鎵惧埌瀹為檯鐨勫鐞嗕唬鐮併€俛pp.get(鈥?鈥?routes.index)灏辨槸涓€涓矾鐢辫鍒欍€?



娉ㄦ剰锛?
1. 鎵€鏈夋柟娉曠殑缁戝畾鍑芥暟鏄痑pp.all(path,callback)锛?
2. 骞傜瓑鎸囩殑鏄噸澶嶈姹傚娆′笌涓€娆¤姹傜殑鏁堟灉鏄竴鏍凤紱
3. 瀹夊叏鏄寚娌℃湁鍓綔鐢紝鍗宠姹備笉浼氬璧勬簮浜х敓鍙樺姩锛岃繛缁闂娆℃墍鑾峰緱鐨勭粨鏋滀笉鍙楄闂€呯殑褰卞搷銆?

## 澶氳矾鐢辫鍒?/strong>
褰撳悓涓€涓湴鍧€鏈夊涓矾鐢辫鍒欑殑鏃跺€欙紝浼氱浉搴旀渶鍏堥厤缃殑璺敱瑙勫垯銆備緥濡傦紝淇敼app.js涓?
```nodejs app.js鐗囨
app.get('/', routes.index);
app.get('/hello', routes.hello);
app.all('/user/:username', function(req, res) {
res.send('all methods captured');
});
app.get('/user/:username',routes.user);
```
缁撴灉涓猴細


鏍规嵁缁撴灉鍙煡锛屽悗闈㈢殑璺敱瑙勫垯娌℃湁琚皟鐢ㄣ€傞偅濡備綍璁╀袱涓矾鐢辫鍒欓兘琚皟鐢ㄥ憿锛?
瑕佸疄鐜拌繖鍔熻兘锛屽氨蹇呴』鍦╮esponse鍏抽棴鍓嶏紝璋冪敤next()锛屾敞鎰忥紝鍦?.x涓渶瑕佸湪鍥炶皟鍑芥暟鐨勫弬鏁板垪琛ㄤ腑鍒楀嚭next鏉ワ紝濡備笅涓篴pp.js鐗囨锛?
```nodejs app.js鐗囨

app.get('/', routes.index);
app.get('/hello', routes.hello);
app.all('/user/:username', function(req, res,next) {
console.log('all methods captured');
next();
});
app.get('/user/:username',routes.user);
```
鐩存帴鐪嬬粨鏋滃惂锛?


鍙堝彲浠ヨ緭鍑篻et鏂瑰紡鐨勮緭鍑轰簡銆?

鍚屾椂鎺у埗鍙颁篃鎵撳嵃鍑轰簡all鏂瑰紡鐨勬墦鍗颁俊鎭€?

杩欑鏂瑰紡缁忓父鍙互鐢ㄥ湪杈撳叆淇℃伅鐨勯獙璇侊紝姣斿鍏堥獙璇佽〃鍗曠殑鏈夋晥鎬э紝涓嶅悎娉曞垯鐩存帴鍏抽棴response骞舵彁绀猴紝鍚﹀垯next銆?



上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:51:35
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2114/
本文WWW.DOC100.NET DOC100.NET版权所有。