zoukankan      html  css  js  c++  java
  • 用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/’

  • 相关阅读:
    给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
    js 中怎么使 if(aᅠ==1 && a== 2 && ᅠa==3) 返回 true?
    最新Hadoop-2.7.2+hbase-1.2.0+zookeeper-3.4.8 HA高可用集群配置安装
    spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置(二)+Druid连接池
    activiti 学习由浅入深
    hadoop2.4.1+hbase0.98.3实现的分布式网盘系统初步(已开源)
    【Note】Linux
    记初学CMMI,跳出码农搬砖时代,人人都是经营者
    java8_接口中的默认方法与静态方法
    java8_Stream
  • 原文地址:https://www.cnblogs.com/jasonwang2y60/p/6072040.html
Copyright © 2011-2022 走看看