Nodejs学习分享

一、npm使用介绍

npm包管理工具

  • 1.安装
    NPM是随同NodeJS一起安装的包管理工具,首先使用npm包管理工具,你得先下载node.js(纯小白操作安装),这里接不说了,在新版的node.js中已经集成了npm 工具,所以,你直接可以用命令查看。
    显示npm版本号:npm -v
    更新npm至最新版 npm install npm -g
    设置淘宝镜像:npm install cnpm -g --registry=https://registry.npm.taobao.org可以使用cnpm代替npm

  • 2、使用npm安装包
    初始化:npm init 执行此命令会在当前目录生成 package.json
    以下为惠亲子package.json文件

<span style="color:#333333">{
     "name": "huiqinzi",
     "version": "1.0.0",
     "description": "",
     "main": "index.js",
     "scripts": {
	    "start": "node build/www.js",
	    "test": "ava -s build/test",
	    "cover": "nyc ava -s build/test && nyc report --reporter=html"
      },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
	    "@types/bluebird": "^3.0.37",
	    "@types/koa": "2.0.38",
	    "@types/koa-router": "^7.0.21",
	    "@types/node": "^7.0.18",
	    "@types/xml2js": "^0.4.2",
	    "immutable": "^3.8.1",
	    "koa": "^2.0.1",
	    "koa-bodyparser": "^4.1.0",
	    "koa-convert": "^1.2.0",
	    "koa-cors": "^0.0.16",
	    "koa-logger": "^2.0.1",
	    "koa-multer": "^1.0.1",
	    "koa-router": "^7.0.1",
	    "koa-static": "^3.0.0",
	    "minio": "^4.0.0",
	    "moment": "^2.17.1",
	    "node-xlsx": "^0.11.0",
	    "pg": "^6.1.3",
	    "redis": "^2.6.5",
	    "request": "^2.80.0",
	    "sequelize": "^3.30.2",
	    "validator": "^7.2.0",
	    "winston": "^2.3.1"
     },
    "devDependencies": {
	    "ava": "^0.19.1",
	    "nyc": "^10.3.2",
	    "sinon": "^2.2.0",
	    "supertest": "^3.0.0"
      }
    }</span>

操作命令:npm install [moduleName] 比如项目要引入mysql模块,npm install mysql@2.16.0(安装2.16.0版本的mysql模块)
在此之前我们可以用$npm info mysql查看一下,当前可用的版本都有哪些。
当使用npm install [moduleName]命令后项目文件中就会多出一个 nodemodules 文件夹,里边装的就是的依赖项文件
安装的在注册模块的时候,使用npm install [moduleName]--save-dev来读写到你的package.json文件的devDependencies配置想里边,--save保存在你的dependencies配置项里边
常用的npm命令集合
a.使用npm update <package>可以把当前目录下node
modules子目录里边的对应模块更新至最新版本。
b.使用npm update <package> -g可以把全局安装的对应命令行程序更新至最新版。
c.使用npm cache clear可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。
d.使用npm unpublish <package>@<version>可以撤销发布自己发布过的某个版本代码。

二、nodejs语法

  • 1.语法
    Nodejs 使用的就是js语法,现在多实用使用es6语法
  • 2.nodejs模块
    一个js文件就是一个模块,和包的区别是一个包有多个模块构成
    在编写每个模块时,都有require、exports、module三个预先定义好的变量可供使用

    requier函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象

    <span style="color:#333333">var foo1 = require('./foo');
    var foo2 = require('./foo.js');
    var foo3 = require('/home/user/foo');
    var foo4 = require('/home/user/foo.js');
    </span>

    exports是当前模块的导出对象,用于导出模块公有方法和属性。别的模块通过require函数使用当前模块时得到的就是当前模块的exports对象

    <span style="color:#333333">exports.hello = function () {
    	console.log('Hello World!');
    };
    </span>

    module对象可以访问到当前模块的一些相关信息,但最多的用途是替换当前模块的导出对象

    <span style="color:#333333">module.exports = function () {
    	console.log('Hello World!');
    };
    </span>
  • 3.nodejs常用内置模块

        fs 提供对文件的操作。http://nodejs.org/api/fs.html    http://nodejs.org/api/stream.html  
    
        path 简化路径相关操作,并提升代码可读性。http://nodejs.org/api/path.html
    
        http 提供两种使用方式:http://nodejs.org/api/http.html
    
        作为服务端使用时,创建一个HTTP服务器,监听HTTP客户端请求并返回响应。
    
        作为客户端使用时,发起一个HTTP客户端请求,获取服务端响应。
    
        https 与 http 模块极为类似,区别在于 https 模块需要额外处理SSL证书。http://nodejs.org/api/https.html
    
        url 解析URL、生成URL,以及拼接URL。http://nodejs.org/api/url.html
    
        querystring 用于实现URL参数字符串与参数对象的互相转换。http://nodejs.org/api/querystring.html
    
        zlib 提供了数据压缩和解压的功能。http://nodejs.org/api/zlib.html
    
        net 用于创建Socket服务器或Socket客户端。http://nodejs.org/api/net.html****##  ##  
    

三、作为服务端开发

  • 1.创建服务器
    <span style="color:#333333">	var http = require("http");
    	http.createServer(function(req,res){
    		res.writeHead(200,{"Content-type":"text/blain"});
    		res.write("Hello NodeJs");
    		res.end();
    }).listen(8888);
    </span>
  • 2.常用web框架
    Express 4.x 框架:http://www.expressjs.com.cn/4x/api.html
    <span style="color:#333333">	var http = require("http");
    	http.createServer(function(req,res){
    		res.writeHead(200,{"Content-type":"text/blain"});
    		res.write("Hello NodeJs");
    		res.end();
    	}).listen(8888);
    </span>
    Koa 框架:https://www.w3cways.com/doc/koa/
    <span style="color:#333333">	const Koa = require('koa');
    	const app = new Koa();
    	const main = ctx => {
    		ctx.response.body = 'Hello NodeJs';
    	};
    	app.use(main);
    	app.listen(8888)
    </span>
  • 3.数据库框架
    Sequlize框架:https://itbilu.com/nodejs/npm/VkYIaRPz-.html

四、其中不好理解的部分

  • 1.Promise对象 https://www.cnblogs.com/whybxy/p/7645578.html

    Promise对象有三种状态: 
    1 异步操作”未完成”(pending) 
    2 异步操作”已完成” (resolved) 
    3 异步操作”失败” (rejected)
    这三种状态的变化途径只有2种: 1 异步操作从”未完成”到”已完成” 2 异步操作从”未完成“到”失败” 所以Promise对象的最终结果  
    只有两种: 1 异步操作成功 Promise对象传回一个值,状态变为resolved 2 异步操作失败 Promise对象抛出一个错误,状态变为rejected
    
    <span style="color:#333333">var p = new Promise(function(resolve, reject){
    //做一些异步操作
    setTimeout(function(){
        console.log('执行完成');
        resolve('随便什么数据');
    }, 2000);
    });
    </span>

    var http = require("http"); http.createServer(function(req,res){ res.writeHead(200,{"Content-type":"text/blain"}); res.write("Hello NodeJs"); res.end(); }).listen(8888);

  • 2.箭头函数

    <span style="color:#333333"> ES5:
    var sum = function(a,b){
        console.log(a);
        console.log(b);
    	return a + b;
    }
    sum(1,2);//1 2 3
    
    ES6:
    let sum0 = (a,b) => {
        console.log(a);
        console.log(b);
        return a + b;
    };
    sum0(2,3);//2 3 5</span>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值