node入门笔记

一、安装检测
     node检测:node  -v;npm检测:npm -v;(有时候需要安装git ,安装检测:git -v)
二、代码执行
     通过控制台进入到文件所在目录,node+空格+文件名
     注:跳转文件夹:cd D:/web/node/project/study/model
     测试工具:如果你想修改代码后能直接刷新查看效果,可以使用supervisor
        安装supervisor:npm install -g supervisor;
        使用:supervisor 文件名;
        特点:会持续执行,代码更新后,会重新编译执行无需再次操控控制台开启服务。

三、内容目录
    1.创建http服务器(server.js)
    2.将需要的模块创建成其他页面可以引入的模块(model)
       a、进入的入口(引入模块)(index.js)
       b、服务器模块(server.js)
       c、路由模块(route.js)
       d、事件流(requestHandlers.js)
    3.事件模块(event.js)
    4.文件系统(fs.js)
    5.node与前台链接(做接口)(connectHtml文件夹)
四、工作流
   node开启index.js进入项目,执行各个模块,让各个模块进行链接
   先开启服务器,
   在服务器中请求路由,
   路由读取请求,将结果分发给事件流,
   事件流中进行事件处理,返回处理结果,
   路由来接收后返回给服务器
   服务器在传给前台
五、Express 是一个简洁而灵活的 node.js Web应用框架
    1.检测是否安装:express --version;
      如果没有安装:在cmd(跳转到node文件夹)执行:npm install -g express 和 npm install -g express-generator
      上面的命令在本地node_modules目录保存安装,并创建一个目录express在node_modules里边。还有,应该使用express安装以下几个重要的模块:
      body-parser   :这是一个Node.js中间件处理JSON,Raw,文本和URL编码的表单数据(npm install body-parser --save)
      cookie-parser : 解析Cookie头和填充req.cookies通过cookie名字键控对象(npm install cookie-parser --save)
      multer        : 这是一个Node.js的中间件处理multipart/form-data(npm install multer --save)
    2.具体安装流程
      a.创建package.json文件(放到项目文件夹中)
        {
            "name": "Your Application Name",
            "description": "Your Description",
            "version": "0.0.1",
            "private": true,
            "dependencies": {
                "express": "3.x"
            }
        }
      b.在项目文件夹中执行:npm install
      c.替换服务器代码
      var express = require('express');
      var app = express();
        app.get('/', function(req, res){
            res.send('Hello World\n');
        });
        app.get('/:word', function(req, res){
            var w = req.params.word;
            res.send(w);
       });
        app.listen(3000);
       console.log('Listening on port 3000...');
       d.期待服务查看结果
六、深入学习
    1.模块和包
     a.通过exports和require进行模块开发
       1>.在第一个hello.js文件中编写一个name对象,最后添加module.exports=name;(exports本身是一个空的对象)
       2>.在同一个文件夹添加一个新的getHello.js,在该文件中通过require("./hello")获取该模块;
     b.创建包(包是一个目录,不同的文件有这指定的位置)
       包文件夹要完全符合以下特点:
            package.json  :    包说明文件      在包的顶层目录下
            二进制文件      :                  在bin文件夹下
            JavaScript文件 :                  在lib文件夹下
            文档           :                  在doc文件夹下
            单元测试        :                  在test文件夹下
       package.json中main为包的接口模块,如果main字段不存在,则会尝试寻找index.js或者index.node作为包的接口
           name:包的名字,必须是唯一的,
       包管理器:npm     安装包的命令: npm install [包名](全局安装在包名前添加-g )
     c.命令行调试 npm debug debug.js
    2.核心模块
     a.设置全局变量 : process对象
             输出:process.stdout.write();输出内容
             输入:process.stdin.resume();//先恢复流
                  process.stdin.on("data",function(){});//在编写事件响应函数
             为事件循环设置任务:process.nextTick(callback);//在下次事件循环响应时执行
     b.常用工具util
         util.inherits(a,b);实现对象间原型继承(a继承b)
         util.inspect(object);将一个对象转化为字符串
     c.事件驱动events
         var eventEmitter=require("events").EventEmitter;
         var events=new eventEmitter();
         events.on("eventName",function(arg1,arg2){});事件监听器
         events.emit("eventName",arg1,arg2);事件发射器,eventName:事件名,arg为传入参数
         events.once("eventName",function(arg1,arg2){});单次事件监听器,执行一次后自动解除
         events.removeListener("eventName",function(arg1,arg2){});解除事件监听器
         events.removeAllListeners();解除所有事件监听器
     d.文件系统fs
         打开文件: fs.open(path,flags);path文件路径,flags文件打开方式(r,r+,w,w+,a,a+)
         读取文件: 异步:fs.readFile(fileName,encoding,callback(err,data));   文件名,文件编号,回调函数(接收读取文件内容:err读取是否错误,data读取的内容)
                 同步:fs.readFileSync();参数同上,错误用try和catch捕获
         写入文件: 异步:fs.writeFile(fileName,data,[encoding],callback(err)); 文件不存在是会自动创建
                 同步:fs.writeFileSync(fileName,data,[encoding],callback(err));
         文件更名: fs.rename(path1,path2,callback(err));path相对路径
         删除文件: fs.unlink(path,callback);
         遍历目录: fs.readdir(path,callback(err,files));
         创建目录: fs.mkdir(path,[mode],callback(err));
         删除目录: fs.rmdir(path,[callback(err)]);
     e.HTTP服务器与客户端
         HTTP服务器:
            http.Server事件:基于事件的http服务器
                   request:客户端请求到来时触发
                   connection:当TCP连接建立时触发,粒度大于request
                   close:服务器关闭时触发
            http.ServerRequest事件:是http请求的信息
                   data:请求体数据到来时触发,
                   end:请求体数据传输完毕触发
                   close:当前请求结束时触发
    3.nodejs与html的数据传输方式
       dom在connectHtml文件加载。
       流程:通过ajax发送请求,在服务器中进行解析请求(通过url地址:携带中文信息时记得解码);
    4.连接数据库
      a、链接MySql数据库
        1.代码安装node-mysql:npm install mysql;
        2.配置数据库:mysql.createConnection(object);object中设置
                    host: 'localhost',//数据库地址
                    user : "root",//数据库用户
                    password: "root",//数据库密码
                    database : "node"//需要连接的数据库
        3.连接数据库:connect();
        4.操作数据库:
query('select * FROM user',function(err,result){
    //执行sql语句
    if(err) {
        console.log(err);
    } else{
        console.log(result);
    }
});
        5.关闭数据库:end()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值