建立一個簡單的node服務器

源碼地址:https://github.com/chunsenye/...css

第一步:建立與訪問html

建立可經過http://localhost:8090/訪問的服務器node

server.jsgit

var http=require('http')
var server= http.createServer(function(request,response){
    console.log('someone has visited my first node server !'); 
})
server.listen(8090,function(){
    console.log('server started at http://localhost:8090  ......')
});

代碼解釋:
1.首先得依賴http 這個不用npm安裝 安裝node以後就有了 因此直接依賴就能夠
2.而後使用http.createServer(callback)方法建立一個未啓動的服務器
3.最後啓動一個監聽8090端口的服務器github

操做:npm

1.進入server.js所在的文件夾
2.輸入 node server.js 運行js文件服務器

clipboard.png

3.訪問 http://localhost:8090/學習

clipboard.png

能訪問服務器了,可是還沒給響應。因此左上角一直在轉,顯示等待localhost響應。再看看服務器:ui

clipboard.png

訪問一次就會多一句信息輸出。url

第二步:讓服務器響應訪問

server.js

var http=require('http')
var server= http.createServer(function(request,response){
    console.log('someone has visited my first node server !'); 
    response.write('welcome to visited my first node server !');
    response.end();
})
server.listen(8090,function(){
    console.log('server started at http://localhost:8090  ......')
});

多了兩句代碼:

response.write('welcome to visited my first node server !');
//response就是響應 response.write()能夠理解爲往響應裏面寫內容
response.end();
//必需要end

最後的結果就是這樣
clipboard.png

第三步:根據訪問連接來判斷響應內容

var http = require('http')
var server = http.createServer(function (request, response) {
    console.log('someone has visited my first node server !');
    if (request.url === '/') {
        response.write('Home Page');
    } else if (request.url === '/login') {
        response.write('Login Page');
    } else if (request.url === '/register') {
        response.write('Register Page');
    } else {
        response.write(request.url);
    }
    response.end();
})
server.listen(8090, function () {
    console.log('server started at http://localhost:8090  ......')
});

代碼解釋:
request.url 的值其實就是http://localhost:8090 後面的內容
默認爲/ 表示主頁
若是是爲/login 表示登陸頁面
若是是爲/register 表示註冊頁面
不然 直接響應該連接

clipboard.png

clipboard.png

clipboard.png

clipboard.png
這裏只是響應了一串字符串,怎麼才能響應一個頁面呢

第四步:響應HTML頁面

server.js

var http = require('http');
// 導入文件讀寫的js
var fs = require('fs');
var server = http.createServer(function (request, response) {
    console.log('someone has visited my first node server !');
    //根據訪問的路徑來選擇響應的文件
    let filePath;
    if (request.url === '/') {
        filePath='index.html';
    } else if (request.url === '/login') {
        filePath='login.html';
    } else if (request.url === '/register') {
        filePath='register.html';
    } else {
        filePath='notfound.html';
    }
    //讀取文件並寫入響應內容中去
    fs.readFile(filePath,function(err,data ){
        response.write(''+data);
        //不能直接寫data 是16進制的數,須要轉成字符串
        //我寫data.toString() 會報錯
        response.end();
    }) 
})
server.listen(8090, function () {
    console.log('server started at http://localhost:8090  ......')
});

經過上面的代碼就能夠實現根據不一樣的路徑響應不一樣的文件了

項目文件目錄

clipboard.png

執行效果

clipboard.png

clipboard.png

clipboard.png

clipboard.png

到這裏就初步完成了簡單的能夠響應文件的服務器了,可是還不能響應圖片,不能加載js文件與css文件這些我暫時也還不會,慢慢學習。

我把天天的學習代碼都放在個人GitHub上了,歡迎來★

https://github.com/chunsenye/...

相關文章
相關標籤/搜索