用nodejs搭建一個簡單的服務器


使用nodejs搭建一個簡單的服務器

nodejs優點:性能高(讀寫文件) 數據操作能力強
官網:www.nodejs.org
驗證是否安裝成功:cmd命令行中輸入node -v 如果顯示版本號表示安裝成功

【常用命令】

切換盤符 d:
進入文件夾 cd nodejs
返回上一級目錄 cd..
清屏 cls
展示目錄 dir
復制文件名 選中右鍵--復制
歷史操作 上箭頭
執行文件 node 文件名(在文件文件夾目錄中)
停止命令行 ctrl+c

nodejs可以使用的ECMAScript、讀寫文件、數據庫操作、搭建服務器
nodejs不可以做的是:DOM、BOM

使用node搭建一個服務器:

//1、引入模塊  使用的http服務協議是RFC2616  nodejs的作者已經寫好了,直接引入就行
var http = require('http');
//引入文件讀寫模塊fs
var fs = require('fs');
//2、創建服務器    函數的參數req是發送給服務器的請求,res是服務器的相應
var httpObj = http.createServer(function(req,res){
    //編寫url  其中index.html是要服務器讀取的文件
    var url = req.url=='/'?'index.html':req.url;
    //開始文件讀取,參數分別是完整的url 編碼 和讀取完畢執行的函數,注意前后台編碼需要一致
    fs.readFile('www/'+url,'utf-8',function(err,data){
        //res.write服務器的相應,當成功的時候,服務器會傳輸一個data數據,相應結束需要end
        if(err){ 
            res.write('404,您訪問的頁面不存在');
            res.end();    
        }else{
            res.write(data);
            res.end();    
        }
    });
});
//監聽端口
httpObj.listen(80);


使用nodejs編寫一個sql語句

//和搭建服務器一樣,需要先引入模塊,mysqle是外生的模塊(提前在node中下載),MySQL模塊會告訴服務器我們需要add還是get
//1、引入模塊,這里多引入了一個mysql模塊
var http = require('http');
var fs = require('fs');
var mysql = require('mysql');
//2、連接服務器使用createServer,同樣參數也是req和res
var httpObj = http.createServer(function(req,res){
    var url = req.url=='/'?'index.html':req.url;
    console.log(url);
    //給前端提供一個json 寫前端接口
    //這里多了地址、用戶名、密碼和數據庫
    if(url.split('?')[0]=='/article'){
        //console.log('我要給前端數據接口');
        //1.建立連接
        var db = mysql.createConnection({
            //地址
            host:'localhost',
            //用戶名
            user:'root',
            //密碼
            password:'',
            //數據庫
            database:'study'
        });
        //3、編寫sql語句,就是在想請求的時候告訴服務器我們需要add還是get
        var sql = 'SELECT * FROM user';
        //3.執行sql返回結果
        db.query(sql,function(err,data){
            if(err){
                console.log('失敗');
            }else{
                //console.log(data[0].username);
                //console.log(JSON.stringify(data));
                res.write(JSON.stringify(data));
                res.end();
            }
        });
    }else{
        //讀取頁面
        fs.readFile('www/'+url,'utf-8',function(err,data){
            if(err){ 
                res.write('404,您訪問的頁面不存在');
                res.end();    
            }else{
                res.write(data);
                res.end();    
            }
        });
    }
});
//4、監聽端口
httpObj.listen(3000);

轉載請注明‘轉載於Jason齊齊的博客http://www.cnblogs.com/jasonwang2y60/’


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM