我們在命令提示符下輸入命令
node demo4.js
服務(wù)啟動后,我們打開瀏覽器 , 輸入網(wǎng)址
:8888/
即可看到網(wǎng)頁輸出結(jié)果Hello World
心情是不是很激動呢?Ctrl+c 終止運行 。
2.3.5理解服務(wù)端渲染
我們創(chuàng)建demo5.js ,將上邊的例子寫成循環(huán)的形式
var http = require('http'); http.createServer(function (request, response) {// 發(fā)送 HTTP 頭部// HTTP 狀態(tài)值: 200 : OK// 內(nèi)容類型: text/plainresponse.writeHead(200, {'Content‐Type': 'text/plain'});// 發(fā)送響應(yīng)數(shù)據(jù) "Hello World" for(var i=0;i<10;i++){response.write('Hello Worldn');}response.end('');}).listen(8888);// 終端打印如下信息console.log('Server running at http://127.0.0.1:8888/');
我們在命令提示符下輸入命令啟動服務(wù)
node demo5.js
瀏覽器地址欄輸入:8888即可看到查詢結(jié)果 。
我們右鍵“查看源代碼”發(fā)現(xiàn),并沒有我們寫的for循環(huán)語句 , 而是直接的10條Hello World
,這就說明這個循環(huán)是在服務(wù)端完成的,而非瀏覽器(客戶端)來完成 。這與我們原來的JSP很是相似 。
2.3.6接收參數(shù)
創(chuàng)建demo6.js
var http = require('http'); var url = require('url');http.createServer(function(request, response){ response.writeHead(200, {'Content‐Type': 'text/plain'});// 解析 url 參數(shù)var params = url.parse(request.url, true).query; response.write("name:" + params.name); response.write("n");response.end();}).listen(8888);console.log('Server running at http://127.0.0.1:8888/');
我們在命令提示符下輸入命令
node demo6.js
在瀏覽器測試結(jié)果
3包資源管理器NPM
3.1什么是NPM
npm全稱Node , 他是node包管理和分發(fā)工具 。其實我們可以把NPM
理解為前端的Maven .
我們通過npm 可以很方便地下載js庫 , 管理前端工程.
最近版本的node.js已經(jīng)集成了npm工具 , 在命令提示符輸入 npm -v 可查看當(dāng)前npm版本
3.2NPM命令
3.2.1初始化工程
init命令是工程初始化命令 。
建立一個空文件夾,在命令提示符進入該文件夾 執(zhí)行命令初始化
npm init
按照提示輸入相關(guān)信息,如果是用默認值則直接回車即可 。
name: 項目名稱
: 項目版本號
: 項目描述
: {Array}關(guān)鍵詞,便于用戶搜索到我們的項目
最后會生成.json文件,這個是包的配置文件 , 相當(dāng)于maven的pom.xml 我們之后也可以根據(jù)需要進行修改 。
3.2.2本地安裝
命令用于安裝某個模塊,如果我們想安裝模塊(node的web框架),輸出 命令如下:
npm install express
出現(xiàn)黃色的是警告信息,可以忽略 , 請放心,你已經(jīng)成功執(zhí)行了該命令 。在該目錄下已經(jīng)出現(xiàn)了一個文件夾 和-lock.json 文件夾用于存放下載的js庫(相當(dāng)于maven的本地倉庫)
-lock.json是當(dāng)或 .json 發(fā)生變化時自動生成的文件 。這個文件主要功能是確定當(dāng)前安裝的包的依賴,以便后續(xù)重新安裝的時候生成相同的依 賴 , 而忽略項目開發(fā)過程中有些依賴已經(jīng)發(fā)生的更新 。
我們再打開.json文件 , 發(fā)現(xiàn)剛才下載的已經(jīng)添加到依賴列表中了.
關(guān)于版本號定義:
指定版本:比如1.2.2,遵循“大版本.次要版本.小版本”的格式規(guī)定,安裝時只安裝指定版本 。波浪號(tilde)+指定版本:比如~1.2.2,表示安裝1.2.x的最新版本(不低于1.2.2) , 但是不安裝1.3.x , 也就是說安裝時不改變大版本號和次要版本號 。插入號(caret)+指定版本:比如?1.2.2,表示安裝1.x.x的最新版本(不低于1.2.2),但是不安裝2.x.x,也就是說安裝時不改變大版本號 。需要注意的是,如果大版本號為0,則插入號的行為與波浪號相同,這是因為此時處于開發(fā)階段,即使是次要版本號變動,也可能帶來程序的不兼容 。latest:安裝最新版本 。
3.2.3全局安裝
剛才我們使用的是本地安裝,會將js庫安裝在當(dāng)前目錄,而使用全局安裝會將庫安裝到你的全局目錄下 。
如果你不知道你的全局目錄在哪里,執(zhí)行命令
npm root ‐g
我的全局目錄在C:Users\\npm 比如我們?nèi)职惭b, 輸入以下命令
npm install jquery ‐g
3.2.4批量下載
我們從網(wǎng)上下載某些代碼,發(fā)現(xiàn)只有.json,沒有文件夾 , 這時我們需要通過命令重新下載這些js庫.
進入目錄(.json所在的目錄)輸入命令
npm install
此時 , npm會自動下載.json中依賴的js庫.
3.2.5淘寶NPM鏡像
有時我們使用npm下載資源會很慢,所以我們可以安裝一個cnmp(淘寶鏡像)來加快下載速度 。
輸入命令,進行全局安裝淘寶鏡像 。
npm install ‐g cnpm ‐‐registry=https://registry.npm.taobao.org
安裝后,我們可以使用以下命令來查看cnpm的版本
cnpm ‐v
使用cnpm
cnpm install 需要下載的js庫
3.2.6運行工程
如果我們想運行某個工程 , 則使用run命令如果.json中定義的腳本如下
dev是開發(fā)階段測試運行
build是構(gòu)建編譯工程lint 是運行js代碼檢測
我們現(xiàn)在來試一下運行dev
npm run dev
3.2.7編譯工程
我們接下來,測試一個代碼的編譯.編譯后我們就可以將工程部署到nginx中啦~
編譯后的代碼會放在dist文件夾中 , 首先我們先刪除dist文件夾中的文件,進入命令提示符輸入命令
npm run build
生成后我們會發(fā)現(xiàn)只有個靜態(tài)頁面,和一個文件夾
這種工程我們稱之為單頁Web應(yīng)用( page web ,SPA),就是只有一張Web頁面的應(yīng)用,是加載單個HTML 頁面并在用戶與應(yīng)用程序交互時動態(tài)更新該頁面的Web應(yīng)用程序 。
這里其實是調(diào)用了來實現(xiàn)打包的,關(guān)于我們后續(xù)的章節(jié)進行介紹
4.1什么是
是一個前端資源加載/打包工具 。它將根據(jù)模塊的依賴關(guān)系進行靜態(tài)分析,然后將這些模塊按照指定的規(guī)則生成對應(yīng)的靜態(tài)資源 。
從圖中我們可以看出,可以將多種靜態(tài)資源 js、css、less 轉(zhuǎn)換成一個靜態(tài)文件,減少了頁面的請求 。接下來我們簡單為大家介紹的安裝與使用
4.安裝

文章插圖

文章插圖
全局安裝
npm install webpack ‐gnpm install webpack‐cli ‐g
安裝后查看版本號
webpack ‐v
4.3快速入門
4.3.1JS打包
(1)創(chuàng)建src文件夾 , 創(chuàng)建bar.js
exports.info=function(str){ document.write(str);}
(2)src下創(chuàng)建logic.js
exports.add=function(a,b){ return a+b;}
(3)src下創(chuàng)建main.js
var bar= require('./bar');var logic= require('./logic');bar.info( 'Hello world!'+ logic.add(100,200));
(4)創(chuàng)建配置文件..js,該文件與src處于同級目錄
var path = require("path"); module.exports = {entry: './src/main.js', output: {path: path.resolve( dirname, './dist'), filename: 'bundle.js'}};
以上代碼的意思是:讀取當(dāng)前目錄下src文件夾中的main.js(入口文件)內(nèi)容,把對應(yīng)的
js文件打包,打包后的文件放入當(dāng)前目錄的dist文件夾下,打包后的js文件名為.js
(5)執(zhí)行編譯命令
webpack
執(zhí)行后查看.js 會發(fā)現(xiàn)里面包含了上面兩個js文件的內(nèi)容
(7)創(chuàng)建index.html ,引用.js
測試調(diào)用index.html,會發(fā)現(xiàn)有內(nèi)容輸出
4.3.2CSS打包
(1)安裝style-和 css-
本身只能處理模塊,如果要處理其他類型的文件,就需要使用 進行轉(zhuǎn)換 。
可以理解為是模塊和資源的轉(zhuǎn)換器,它本身是一個函數(shù) , 接受源文件作為參數(shù),返回轉(zhuǎn)換的結(jié)果 。這樣,我們就可以通過來加載任何類型的模塊或文件,比如、 JSX、 LESS 或圖片 。首先我們需要安裝相關(guān)插件,css- 是將 css 裝載到 ;style- 是讓認識css
cnpm install style‐loader css‐loader ‐‐save‐dev
(2)修改..js
var path = require("path"); module.exports = {entry: './src/main.js', output: {path: path.resolve( dirname, './dist'), filename: 'bundle.js'},module: {rules: [{test: /.css$/,use: ['style‐loader', 'css‐loader']}]}};
(3)在src文件夾創(chuàng)建css文件夾,css文件夾下創(chuàng)建css1
body{ background:red;}
(4)修改main.js,引入css1.css
require('./css1.css');
(5)重新運行
(6)運行index.html看看背景是不是變成紅色啦?
5開發(fā)工具
5.簡介
(Code)是微軟出的一款輕量級代碼編輯器 ,重要的是它在, OS X 和Linux操作系統(tǒng)的桌面上均可運行 。Code內(nèi)置了對, 和Node.js語言的支持 , 并且為其他語言如C++, C#, , PHP等提供了豐富的擴展庫和運行時 。
5.安裝與配置
5.2.1安裝
官網(wǎng)下載
默認安裝即可
5.2.2插件安裝
可以通過安裝插件來使編輯器變的更加強大 以下為前端開發(fā)工程師常用插件
(1)HTML
超級實用且初級的 H5代碼片段以及提示
(2)HTML CSS
讓 html 標(biāo)簽上寫class 智能提示當(dāng)前項目所支持的樣式 新版已經(jīng)支持scss文件檢索
(3) for
讓映射的 debug功能,靜態(tài)頁面都可以用來打斷點調(diào)試,真
666~
(4)vetur
vue框架所需的插件 語法高亮、智能感知、Emmet等
(5) 代碼片段
5.2.3配置自動保存
點擊菜單 :文件–勾選自動保存
6ES6
6.1什么是ES6
編程語言是的實現(xiàn)和擴展。是由ECMA(一個類似W3C的標(biāo)準(zhǔn)組織)參與進行標(biāo)準(zhǔn)化的語法規(guī)范 。定義了: 語言語法 – 語法解析規(guī)則、關(guān)鍵字、語句、聲明、運算符等 。
類型 – 布爾型、數(shù)字、字符串、對象等 。
原型和繼承
內(nèi)建對象和函數(shù)的標(biāo)準(zhǔn)庫 – JSON、Math、數(shù)組方法、對象自省方法等 。
標(biāo)準(zhǔn)不定義HTML或CSS的相關(guān)功能 , 也不定義類似DOM(文檔對象模型) 的Web API,這些都在獨立的標(biāo)準(zhǔn)中進行定義 。涵蓋了各種環(huán)境中JS的使用場景,無論是瀏覽器環(huán)境還是類似node.js的非瀏覽器環(huán)境 。
標(biāo)準(zhǔn)的歷史版本分別是1、2、3、5 。
那么為什么沒有第4版?其實微信web開發(fā)者工具使用,在過去確實曾計劃發(fā)布提出巨量新特性的第4版微信web開發(fā)者工具使用,但最終卻因想法太過激進而慘遭廢除(這一版標(biāo)準(zhǔn)中曾經(jīng)有一個極其復(fù)雜的支持泛型和類型推 斷的內(nèi)建靜態(tài)類型系統(tǒng)) 。
ES4飽受爭議,當(dāng)標(biāo)準(zhǔn)委員會最終停止開發(fā)ES4時,其成員同意發(fā)布一個相對謙和的ES5
版本,隨后繼續(xù)制定一些更具實質(zhì)性的新特性 。這一明確的協(xié)商協(xié)議最終命名為“”,因此,ES5規(guī)范中包含這樣兩句話
是一門充滿活力的語言,并在不斷進化中 。
未來版本的規(guī)范中將持續(xù)進行重要的技術(shù)改進
2009年發(fā)布的改進版本ES5 , 引入了.()、.()、
和、嚴(yán)格模式以及JSON對象 。
6.0(以下簡稱ES6)是語言的下一代標(biāo)準(zhǔn) , 2015年6月正式發(fā) 布 。它的目標(biāo),是使得語言可以用來編寫復(fù)雜的大型應(yīng)用程序,成為企業(yè)級開發(fā)語言 。
6.2Node.js中使用ES6
ES6+ 太棒了,但是很多高級功能node是不支持的,就需要使用babel轉(zhuǎn)換成ES5
(1)babel轉(zhuǎn)換配置,項目根目錄添加. 文件
"presets" : ['es2015']
(2)安裝es6轉(zhuǎn)換模塊
cnpm install babel‐preset‐es2015 ‐‐save‐dev
(3)全局安裝命令行工具
cnpm install babel‐cli ‐g
(4)使用
babel‐node js文件名
6.3語法新特性
【十次方專屬社交平臺前端系統(tǒng)開發(fā)-前端環(huán)境搭建】本文到此結(jié)束 , 希望對大家有所幫助 。
- 北京周邊十個城市旅游?
- 十大東莞親子必去景點?
- 吉林市十大景區(qū)排名?
- 廣西必玩的十大景點?
- 昆明十大旅游必去景點有哪些?
- 杭州十大人氣最旺餐廳排行?
- 江浙滬必去十大景點?
- 河北十大旅游景點排行榜河北省有什么好玩的地方去?
- 山東炒雞十大排名 山東干炒雞的正宗做法?
- 十八歲成年禮怎么弄有儀式感 ?什么是成人禮
