1.node的介绍
1. 什么是NodeJS,在应用程开发中起什么作用?
Nodejs是一个应用编程平台,能运行javascript语言编写的代码,提供了javascript运行环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
提供了大量应用编程接口API,在处理http网络、数据库、文件等操作时非常方便.
2. NodeJS开发环境安装
1.官网下载地址http://nodejs.cn/download/
2. 检测是否安装成功
打开命令窗口:输入 node –v
#>v10.11.3
出现如上提示表示安装成功
3.环境配置(若不配置第三方全局安装包和缓存默认在c盘下)
第一步:在nodejs安装目录下新建: ”node_global”及”node_cache”两个文件夹
第二步: cmd 中输入如下命令
$ npm config set prefix “d:\nodejs\node_global” //设置全局安装路径
$ npm config set cache “d:\nodejs\node_cache” //设置缓存路径
第三步: 查看路径设置
2.模块化编程
将每个js文件看作是一个模块,它们之间可以相互调用.
Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开接口对象(用于定义公开模块接口),require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。
有时候我们只是想把一个对象封装到模块中,格式如下:
module.exports = function() {
// …
}
模块接口的唯一变化是使用 module.exports = Hello 代替了exports.world = function(){}。 在外部引用该模块时,其接口对象就是要输出的 Hello 对象本身,而不是原先的 exports。
module.exports与exports的介绍
module.exports与exports都是将函数或者是方法暴露出去,require的时候进行调用
module.export 暴露整个对象
module.export 如果后面跟函数表示将函数使用对象暴露
a.js
module.exports = function() {
// …
}
b.js
var oneObj = requery(‘a.js’);
oneObj(); //执行函数
exports暴露指定函数,可看作module.exports对象引用
exports.函数=函数|属性;
a.js
exports.one = function() {
// …
}
exports.two = function(){
//…
}
Var k1 = 10;
exports.k = k1;
b.js
var exc = requery(‘a.js’);
exc.one();
exc.two();
exc.k;
3.异步与同步, 理解回调函数、阻塞与非阻塞
读文件示例
var fs = require("fs");
//同步读文件
var data = fs.readFileSync('src/test.json'); //10分钟
console.log("准备茶叶>>>"); //2分钟
console.log(data.toString());
//异步读文件
fs.readFile("src/test.json", function(err,data){
for(var i =0; i < 100; i++){
console.log(" ");
}
console.log(data.toString());
});
console.log("准备茶叶>>>");
回调函数
Node.js 异步编程的直接体现就是回调。
回调函数在完成任务后就会被调用
例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js 的性能,可以处理大量的并发请求。
4.nodejs包管理工具 NPM
1. 什么是npm?
中文文档: https://www.npmjs.cn/
官网: https://www.npmjs.com/
2. 检查npm是否安装 $ npm –v
3. 设置npm服务器为淘宝镜像服务器
$ npm config set registry https://registry.npm.taobao.org
4. npm包安装方式: 全局安装 和本地安装
npm install 包名 //本地安装
npm install mysql -g //全局安装MySQL数据库包
注: 如果全局安装包无效,需设置NODE_PATH环境变量
NODE_PATH: D:\nodejs\node_global\node_modules //全局安装包所在路径
Path: %NODE_PATH%
5. cnpm 使用淘宝 NPM 镜像
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
$ cnpm install mysql –g
5.mysql数据库操作
var mysql = require("mysql");
var connection = mysql.createConnection(
{
host: "localhost",
user: "root",
password: "b123",
database: "ex1db"
}
);
connection.connect(); //打开数据库连接
var sql = "SELECT e_no,e_name,e_sex,dept_no,e_salary,e_job,hire_date FROM employee";
connection.query(sql,function(err,data){
if(err){
console.log("数据库操作出错"+err);
return;
}
console.log("姓名\t性别\t 薪酬\t工作" );
for(var i = 0; i < data.length; i++){
console.log(data[i].e_name +"\t"+ data[i].e_sex +"\t"+ data[i].e_salary+ "\t" + data[i].e_job );
}
});
connection.end(); //关闭数据库连接
6.package.json文件说明解释
1.package.json是什么?
什么是Node.js的模块(Module)?在Node.js中,模块是一个库或框架,也是一个Node.js项目。Node.js项目遵循模块化的架构,当我们创建了一个Node.js项目,意味着创建了一个模块,这个模块的描述文件,被称为package.json。作为一个描述文件,描述了你的项目依赖哪些包和项目模块相关信息
2.package.json属性说明
name - 包名.
version - 包的版本号。
description - 包的描述。
homepage - 包的官网URL。
author - 包的作者,它的值是你在https://npmjs.org网站的有效账户名,遵循“账户名<邮件>”的规则,例如:zhangsan [email protected]。
contributors - 包的其他贡献者。
dependencies / devDependencies - 生产/开发环境依赖包列表。它们将会被安装在 node_module 目录下。
repository - 包代码的Repo信息,包括type和URL,type可以是git或svn,URL则是包的Repo地址。
main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
keywords - 关键字
上述参数是极为常见的参数,另外还可以设置script、license等等。除了官方必须的一些参数外,我们也可以存储我们自己的关于模块的描述信息在package.json。
3. 生成package.json文件
$ npm init
4.关于版本号的描述 https://www.jianshu.com/p/b3d86ddfd555
5.指定依赖的包
安装包时 我们需要在 package.json 文件中指定项目依赖的包,这样别人在拿到这个项目时才可以使用 npm install 下载。
包有两种依赖方式:
dependencies:在生产环境中需要用到的依赖
devDependencies:在开发、测试环境中用到的依赖
6.安装参数 --save 和 --save -dev
添加依赖时我们可以手动修改 package.json 文件,添加或者修改 dependencies devDependencies 中的内容即可。
另一种更酷的方式是用命令行,在使用 npm install 时增加 --save 或者 --save -dev 后缀:
npm install <package_name> --save //表示将这个包名及对应的版本添加到 package.json的 dependencies
npm install <package_name> --save-dev //表示将这个包名及对应的版本添加到 package.json的 devDependencies