用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/’