Node.js小结(一)

一、使用node构建Web服务器
加载核心模块 ---> 创建服务器 ---> 提供对数据的服务 ---> 绑定端口号启动服务器
1、加载核心模块(其实就是引包)
    var http = require(‘http’);
    如果要操作文件的话还要用:
    var fs = require(‘fs’);

2、创建服务器
    var server = http. createServer();

3、提供对数据的服务
server.on(' request',function( req,res){       // request是服务器的请求事件,req是请求对象,res是响应对象
    // /index.html
    var url = req.url;          //将请求对象的地址赋给url

    if(url === '/'){          //如果请求对象的地址就是端口号绑定的地址
        // 要发送的还是在文件中的内容
        fs.readFile('./resource/index.html',function(err, data){       //读入文件
            if(err){        //读取文件失败
                res.setHeader('Content-type','text/plain;charset=utf-8');
                res.end('文件读取失败,请稍后重试');
            }else{          //读取文件成功
                // data在文件中默认是二进制数据,可以通过.toString转为能识别的字符串
                 res.setHeader('Content-type','text/html;charset=utf-8');   //解决网页显示中文乱码问题
                res.end(data);
            }
        });
    }else if(url === '/a'){           //请求对象的地址是/a
        fs.readFile('./resource/head.png',function(err,data){          //读取文件
            if(err){              //读取失败
                res.setHeader('Content-Type','text/plain;charset=utf-8');
                res.end('文件读取失败,请稍后重试');
            }else{                //读取成功
                //图片不需要指定编码
                res.setHeader('Content-Type','    application/x-png');
                res.end(data);
            }
        });
    }
});

4、绑定端口号启动服务器
server. listen(3000,function(){
    console.log('服务器启动成功,可以通过http://127.0.0.1:3000/来访问');
});


二、模块系统
1、在node中 每一个文件称为一个模块

2、每一个模块都有一个自己的module对象,这个对象又有一个成员对象exports。每个模块最后返回的都是自己的 module.exports对象,是一个对外导出的接口
例如:a.js模块里面require(加载)了b.js模块,那么a.js模块就能得到b.js模块的module.exports对象。这样a.js文件就可以获取到b.js文件里面的module.exports.xxx(可以是对象、方法),也就是b.js可以通过自己的module.exports对外导出自己的对象/方法
a.js模块:

b.js模块:

运行结果:运行a.js文件之后,可以在控制台中打印出‘hello bbbbbb’





三、express的使用
1、在文件中通过node 安装express的步骤
(1)在要安装express的文件下打开cmd
(2)初始化:npm init -y
        (生成package.json文件,注意,文件夹里一定要有这个package.json文件才能成功安装express)
(3)输入命令行:npm install --save express
注意事项
    在用npm安装express的时候,经常会出现这种情况:在cmd窗口npm install express回车之后,出现三个ERROR提示安装没有成功,并且在文件目录下也不能找到express,如果出现这种情况,就要检查三个地方
(1)在安装espress包的目录下是否有package.json文件,如果没有,在cmd中输入“npm init -y”回车
(2)要以管理员身份运行cmd
(3)要删除 C:\Users\{账户}\下的.npmrc文件
完成上述步骤之后再在cmd输入"npm i -S express"就会安装成功了

2、在入口文件app.js使用express
加载核心模块(引包)---> 创建express服务器 ---> 公开指定目录资源 ---> 响应操作 ---> 绑定端口号开启服务器
(1)加载核心模块(引包)
    var express = require(‘express’);
(2)创建express服务器
    var app = express();
(3)公开指定目录资源( 只要这样就可以直接通过/public/xxx的方式访问到public目录中个所有资源,原本要访问特定文件的时候要自己手动写代码来判断路径,读取文件,现在通过express就不用了)
     app.use('/public/',express.static('./public/'));
(4)响应操作
     当服务器收到 get请求“/” 的时候,执行该回调处理函数
    app. get('/',function(req,res){
        res.send('hello express!');
    });
(5)绑定端口号开启服务器
     app.listen(3000,function(){
        console.log('express app is running ...');
    });

3、利用express使用art-template模板引擎(art-template模板引擎会在Node.js中 自动 渲染整个页面 <不用自己去手写渲染页面>
(1)安装
    npm install --save art-template express-art-template   
(2)配置
    写在“ 公开指定目录资源 ”后面:
     app.engine('art', require('express-art-template'));         // 核心代码
(3)响应操作: res.render('html文件名',{模板数据})    
    <1>会自动去读取页面对应的文件、渲染数据
    <2>第一个参数不能写路径,默认会去项目中的views目录查找该模板文件(也就是说express有一个约定:开发人员把所有html文件都放在veiws目录中)
    <3>这个方法默认是不可用的,只有在配置模板引擎之后才能用。
     app.get ('/post',function(req,res){
         res.render ('post.html');    
    });

4、配置 解析表单POST请求体 的插件: body-parser
(1)安装
    npm install --save body-parser

(2)配置
    <1>引包
        var bodyParser = require('body-parser');
    <2>配置body-parser(只要加入这个配置,就会在req请求对象上多出一个属性:body): 直接通过req.body获取表单POST请求体数据
        app.use(bodyParser.urlencoded({extended:false}))
        app.use(bodyParser.json());


一个巩固基础的小项目(这里面都有我自己写的详细注释,对初学者来说看懂应该是可以的):
链接:https://pan.baidu.com/s/1XJaVf7ityW_d18DYZxoBnA 密码:aw21

















猜你喜欢

转载自blog.csdn.net/UNDEFINED_AUBE/article/details/80493870