console.log('HelloWorld!')
複製代碼
3.而後打開cmd切到文件所在的文件夾輸入node Hello.js就會輸出HelloWorld!javascript
這樣就算寫了一個簡單的node.js的程序了,雖然沒什麼用html
瀏覽器中的JavaScript是沒有辦法直接去操做你電腦系統中的文件的可是node.js具備這種操做文件的能力java
//一、想要在node.js的環境下經過JavaScript來操做系統上的文件的話就必須先導入node的核心模塊fs
var fs = require('fs')
//二、導入核心模塊fs以後須要去用readFile這個方法來讀取文件,這個方法有兩個參數
//第一個參數是文件所在的路徑
//第二個是回調函數
//回調函數也有兩個參數
//第一個是data,第二個是error
//當文件讀取成功的時候data中存儲的是讀取的文件中的數據,error則爲null
//當文件讀取失敗的時候data爲null,error則爲錯誤對象
fs.readFile('./txt/hello.txtx',function(error,data){
console.log('data:'+data);
console.log('error:'+error);
})
複製代碼
讀取文件成功:node
讀取文件失敗:web
//node寫入文件也是同樣的須要導入fs模塊
var fs = require('fs')
//導入模塊後調用fs模塊的writeFile方法,這個方法有三個參數
//第一個參數是寫入文件的存儲路徑
//第二個是寫入文件的內容
//第三個是回調函數
// 這個回調函數有一個參數error當文件寫入成功的時候爲null
// 失敗的時候會返回一個對象裏面有報錯信息
fs.writeFile('./hello.txt','你好node.js',function(error){
console.log(error)
})
複製代碼
四、用node.js建立一個簡單的服務器小程序
//建立服務器須要導入node的一個核心模塊
var http = require('http')
//而後經過http.creatServer()方法建立一個web服務器並返回一個sever的實例
var server = http.creatServer()
//而後經過這個server.on註冊request請求事件
//當客戶端請求過來,會觸發服務器的request請求而後執行第二個參數回調函數
//這個回調函數有兩個參數request,response能夠經過request拿到一些有關請求的一些數據
//經過response想頁面去返回一些數據
server.on('request',function(request,response){
console.log('收到請求'+request.url)
response.end('HelloNodeJs')
})
//而後經過server.listen()方法綁定端口號啓動服務器
//listen有兩個參數第一個是端口號後面一個是回調函數
server.listen(8080,function (){
console.log('服務器已啓動')
})
複製代碼
而後啓動node服務器:api
訪問服務器瀏覽器
可是照着以上代碼去寫,返回時若是有中文就會出現亂碼問題:bash
那這個問題的解決方法就是在返回內容的代碼上面加上服務器
response.setHeader('Content-Type','text/plain; charset-utf-8')複製代碼
這個代碼是設置響應頭用的瀏覽器默認使用的是計算機操做系統的編碼格式,咱們使用的中文操做系統的編碼格式是GBK,可是咱們代碼所使用的的編碼格式是utf-8的格式,因此咱們的響應過去的內容須要設置響應內容的編碼格式。
有一個格式對照表:tool.oschina.net/commons
用這個就能夠對應文件擴展名選擇傳輸格式。
node中的JavaScript和瀏覽器當中的js有些不一樣,node.js沒有DOM和BOM。它主要是由:
node.js的核心模塊有不少每個都是每個都是由Node提供的具名的模塊,都有着本身專屬的名稱和標識,例如:
能夠去官網文檔看看:nodejs.org/dist/latest…
使用方法使用require方法引入核心模塊:
var fs = require('fs')複製代碼
自定義模塊簡單的理解就是本身寫的代碼,使用方法和引入核心模塊是同樣的可是有些地方須要注意
require
加載只是執行其中的代碼並不能獲取其中的對象,做用域只在本身當前所處文件當中,模塊是徹底封閉的,外部的模塊沒法訪問內部的內容,內部也沒法訪問外部的exports。
若是你須要將成員變量被外部訪問到那麼你就須要把成員掛載到exports
接口當中接下來簡單的舉一個自定義模塊加載的例子:
a.js
console.log('我是模塊a,開始加載模塊b')
var b = require('./b.js')
console.log('模塊b加載完畢')
複製代碼
b.js
console.log('我是模塊b')
複製代碼
運行模塊a.js以後的結果: