NodeJS 7-Nodeを勉強します
4643 ワード
7 Node
7.1 Linux環境構築 wgethttps://npm.taobao.org/mirrors/node/v6.10.3/node-v6.10.3-linux-x64.tar.xz xz-d node-v 6.10 3-linux-x 64.tar.xz/tar-xzvf node-v 6.10.3-linux-x 64.tar.gz(ストレス解消) tar-xvf node-v 6.10.3-linux-x 64.tar(解凍) ln-s/node-v 6.10.3-linux-x 64/bin/node/usr/local/bin/node(ソフト接続を確立する) ln-s/node-v 6.10.3-linux-x 64/bin/npm/usr/local/bin/npm(ln=link) LTS:long time suppose(長期サポートバージョンは、一般的に3年間有効です.)
穴を比較する方法: sudo ap-get install nodejs sudo ap-get install npm 7.2 httpsperverを作成する
nodeの特徴: Chrome V 8エンジンに基づく 単スレッド JavaScriptを使ってバックエンドコードを開発する ブロックされていないIO デモCommon仕様:1、module.exportsを通じて作成します.2,export.オブジェクトを通じて作成する
JSにはグローバルスコープ、関数スコープがあります.ブロック作用領域の概念がない.ECMAScript 6(ES 6と略称)にブロックレベルのスコープが追加されました. ブロックスコープは{}によって含まれ、if文とfor文の中の{}もブロックスコープに属します. var定義の変数は、ブロックの概念がなく、ブロックにまたがってアクセスでき、関数にまたがってアクセスできません. letで定義された変数は、ブロック・スコープにしかアクセスできません.ブロックをまたいでアクセスできません.関数をまたいでアクセスすることもできません. constは定数を定義するために使用され、使用時は初期化されなければならず、ブロック作用領域にのみアクセスでき、修正できない. 7.3 nodeによる静的リソースのロード
7.4 expressフレームに基づく運行環境を構築する express generatorジェネレータ をインストールします.はexpressバージョンを調べます.express-version(express-vはビューの意味です.ここでは他のソフトウェアとは違っています.)npm install express--save. express generatorジェネレータをインストールしてからバージョン番号を確認できます.npm install-g express-generator. ジェネレータによって自動的にプロジェクトを作成する expressフレームプロジェクトを作成します. 一つのファイルを作成するには、bin、public、routes、view、ap.js、package.jsonが含まれます.構成解析 bin:実行可能ファイル、wwwいくつかのものに対してカプセル化して、効果的なのはひと言だけで、serverを作成しました. public:静的資源. routes:ルート; view:ビュー(.jade言語) ap.js:入り口. package.json:構成は、外との合併が可能です.
7.1 Linux環境構築
穴を比較する方法:
nodeの特徴:
// :module.exports
module.exports = {
userName:"Jack",
sayHello(){
return "hello"
}
}
// :exports.
exports.userName = "Tom";
exports.sayHello = function () {
return "World"
}
//
let user = require('./User');
console.log(`userName:${user.userName}`);
console.log(`I'm ${user.userName},I say ${user.sayHello()}`)
Http Serverを作成します.let http = require("http");
let url = require('url');
let util = require('util');
let server = http.createServer((req,res)=>{
res.statusCode = 200;
res.setHeader("Content-Type","text/plain;charset=utf-8");
console.log(`url:${req.url}`); //
console.log(`parse:${url.parse(req.url)}`); // [object Object]
console.log(`inspect:${util.inspect(url.parse(req.url))}`) //
res.end(util.inspect(url.parse(req.url)));
});
server.listen(3000,'127.0.0.1',()=>{
console.log(" , , :http://127.0.0.1.3000/ ")
})
Webコンテナを作成し、HTMLコンテンツにアクセスできます.
Title
!
let http = require("http");
let url = require('url');
let util = require('util');
let fs = require('fs');
let server = http.createServer((req,res)=>{
// res.statusCode = 200;
// res.setHeader("Content-Type","text/plain;charset=utf-8");
var pathname = url.parse(req.url).pathname;
console.log("file:"+pathname.substring(1));
fs.readFile(pathname.substring(1),function (err,data) {
if(err){
res.writeHead(404,{
'Content-Type':'text/html'
})
}else {
res.writeHead(200,{
'Content-Type':'text/html'
})
res.write(data.toString());
}
// end 。
res.end();
})
});
server.listen(3000,'127.0.0.1',()=>{
console.log(" , , :http://127.0.0.1.3000/ ")
})
Httpモジュールクライアントのプレゼンテーション:let http = require('http');
let util = require('util');
http.get('http://www.imooc.com/u/card',function (res) {
let data = '';
res.on('data',function (chunk) {
data += chunk;
});
res.on('end',function (){
let jsonpToJson = data.split('(')[1].split(')')[0];
let result = JSON.parse(jsonpToJson);
console.log('resultAll:'+util.inspect(result));
console.log('resultMsg:'+result.msg);
})
})
ここで、ES 6のletとvar、constの違いを説明します.JSにはグローバルスコープ、関数スコープがあります.ブロック作用領域の概念がない.ECMAScript 6(ES 6と略称)にブロックレベルのスコープが追加されました. ブロックスコープは{}によって含まれ、if文とfor文の中の{}もブロックスコープに属します.
7.4 expressフレームに基づく運行環境を構築する
// jade html
var ejs = require('ejs');
app.engine('.html',ejs.__express);
app.set('view engine', 'html');