一、NodeJS简介和安装
1. 安装Visual Studio Code: https://code.visualstudio.com/
2. Javascript只能在HTML文件中引用,不能单独使用。所以有了NodeJS, NodeJS是一个平台。
3. 安装NodeJS: http://nodejs.cn/download/
4. NPM(node package manager)是NodeJS库的地址:https://www.npmjs.com/
5. NodeJS原来开发是想作为轻量化的服务器,但目前主要是用基于NodeJS平台衍生的工具,NodeJS不太用写代码。
二、NodeJS的基本使用
2.1 运行谁就Node谁
- 创建js文件
Console.log(1+1);
![be21d3a7e11818d7eb5c2fb19de9324a.png](https://i-blog.csdnimg.cn/blog_migrate/ad073dc36221b7b4d577f30a58fc74eb.png)
2. 按住shift+鼠标右键 ->在此处打开命令窗口
3. 使用NodeJS必须使用CMD窗口,在命令窗口输入:
node test.js
输出结果: 2
![304c6b5b8740eae01de39ff47537ea6b.png](https://i-blog.csdnimg.cn/blog_migrate/4803c743e4e9dea0ad33218f627ca8cf.png)
2.2 简单案例
a:案列一:读写文件
- fs是file system文件系统,是NodeJS的内置“模块”,利用它可以读写文件
var fs=require("fs");
fs.writeFile("./xiewenjian.txt", "你好", function(err){
if(!err){
console.log("文件写好了");
}else{
console.log(err);
}
})
输出结果
![95b32bea8d410c1a91b2ca61c7a1b877.png](https://i-blog.csdnimg.cn/blog_migrate/26ab7bce5794f9595dffdebed7a70a0f.jpeg)
![795cc60105c112b20c7be9c1d899faf7.png](https://i-blog.csdnimg.cn/blog_migrate/a22d2b78109fc9b6bbe260aca6b0264b.jpeg)
b. 案列二:css样式(将a.less文件中的class嵌套翻译成css文件)
- CMD 安装less (less是智能样式表)
npm –o 可选环境
npm –g 全局环境
npm install -g less
2. 创建文件a.less
@w: 100px;
.header {
width: @w * 8;
height: 100px;
.logo {
float: left;
}
ul {
letter-spacing: normal;
li {
float: left;
}
}
}
3. CMD输入:
lessc a.less a.css
4. 得到新创建的a.css文件
.header {
width: 800px;
height: 100px;
}
.header .logo {
float: left;
}
.header ul {
letter-spacing: normal;
}
.header ul li {
float: left;
}
三、NodeJS模块
a. 案例一:算面积周长
exports. 向外暴露一个函数
circle.js 是入口文件
1. 新建 “app.js”文件
exports.mianji=function (r){
return 3.14 * r * r;
}
exports.zhouchang=function (r){
return 2 * 3.14 * r;
}
2.新建”circle.js”文件
var circle=require("./app.js");
console.log(circle.mianji(10));
console.log(circle.zhouchang(10));
1. 结果
![9a289bf455e5ebe7f737db016a979ad6.png](https://i-blog.csdnimg.cn/blog_migrate/dfd7d913cad1131836525dbf0f25646f.png)
b. 案列二:当有两个暴露文件
1. 创建“circle.js”
exports.mianji=function (r){
return 3.14 * r * r;
}
exports.zhouchang=function (r){
return 2 * 3.14 * r;
}
2. 创建“fang.js”
exports.mianji=function(r){
return r*r;
}
exports.zhouchang=function(r){
return r*4;
}
3.创建“app.js”
var circle=require("./circle.js");
var fang=require("./fang.js")
console.log(circle.mianji(10));
console.log(circle.zhouchang(10));
console.log(fang.mianji(10));
console.log(fang.zhouchang(10));
2. 结果
![a4704d72acc52e2da868adba74afe941.png](https://i-blog.csdnimg.cn/blog_migrate/567b74e1492fceb916a0c4d5aa8a0e4e.png)
c. 案列三:people函数
1.创建”people.js”
function people(name, age, sex){
this.name=name;
this.age=age;
this.sex=sex;
}
people.prototype.sayhello=function(){
console.log("hello" + this.name);
}
exports.people=people;
2. 创建“app.js”
var people=require("./people.js")
var bill=new people.people("bill", "30", "male");
bill.sayhello();
3.结果:
![483d1303eab5d5ab80c3eb1dcd67a006.png](https://i-blog.csdnimg.cn/blog_migrate/318d97f6421895414eabb036f71a0e94.png)
或者:
1. People.js可以这样写(用模块化导入)
module.exports=people;
2. app.js可以这样写
var bill=new people("bill", "30", "male");
3. 可以得到一样的结果
四、node_modules文件夹
1. node_modules文件夹可以:
- 不写完整的路径和文件类型
- 可以放在任何一级目录下面
2. 创建node_modules文件夹, 放入暴露文件people.js
![aff4924bc58a34a5430f5736207d76eb.png](https://i-blog.csdnimg.cn/blog_migrate/64287a8e62c8d52e8b43b7cff98d2939.png)
3. 更新app.js文件
var people=require("people")
4.可以正常node
![483d1303eab5d5ab80c3eb1dcd67a006.png](https://i-blog.csdnimg.cn/blog_migrate/318d97f6421895414eabb036f71a0e94.png)
六、npm的使用
npm网址:https://www.npmjs.com/
6.1 npm简单案例
a. 案列一:农历日期
1. 在npm网站搜索“农历”(全世界分享NodeJS模块的网站)
![8cfce9a5732d0bd80cb93fe7adb9734a.png](https://i-blog.csdnimg.cn/blog_migrate/637ff1cb3c01bcfd54463a46ea237b17.jpeg)
2. 点击进入solarlunar, 根据模块的说明安装使用solarlunar
![df391a497453dcb3ef10df764593b9dc.png](https://i-blog.csdnimg.cn/blog_migrate/70e9644f8970728e77a44dedf9d1b45a.png)
以下截图是显示的ES6语法
![e88872a0ba0dbc31a53a9abff7cd4466.png](https://i-blog.csdnimg.cn/blog_migrate/0e90b6c7ea8bbb6e80c250181b69472b.png)
1) 安装:
npm install solarlunar
2) 在app.js文件中引用solarlunar
var solarlunar=require("solarlunar");
console.log(solarlunar.solar2lunar(2015, 10, 8));
3) 结果
![b18f4afa265936c01a7b9160773f71f1.png](https://i-blog.csdnimg.cn/blog_migrate/3480d5ecd1bcc5a18872152f88ebb7be.png)
b. 案列二:拼音
- npm 搜索并在cmd安装拼音模块
npm install pinyin
![b12296aabcce4ce966c50b5c316ad214.png](https://i-blog.csdnimg.cn/blog_migrate/ccf19b6982a95222090d3ac8e03b7217.png)
2. 在app.js里更新
var pinyin = require("pinyin");
console.log(pinyin("中心"));
3. 结果
![eab0ffe7be5018ec656495a3a843afd1.png](https://i-blog.csdnimg.cn/blog_migrate/28a0892c44d2d540c2a6792b6aa7319d.png)
c.案列三:人民币大写
- npm 搜索并安装模块
npm install rmb-x
2.更新app.js文件
var rmb=require('rmb-x');
console.log(rmb(200));
3.结果
![5248ecb0dcf626a290f4b2d7b543d74f.png](https://i-blog.csdnimg.cn/blog_migrate/c03ce625450c4e703734beea1d01d0a9.png)
注:"package-lock.json"文件是打包锁,保证下次下载文件速度会快一些,可以删除。
![795ec3fc7f7ce6d096441d10adcccf30.png](https://i-blog.csdnimg.cn/blog_migrate/a870986ad27795bc1e122e99fb21293f.png)
d. 案列四:将二维数组转换成excel
- 安装node-xlsx
npm install node-xlsx
2. 更新app.js文件
var data=[
["","一月","二月"],
["钢材","12","24"],
["铝材", "15", "50"]
]
var xlsx=require("node-xlsx")
var buffer = xlsx.build([{name: "利润表", data: data}]);
var fs=require("fs");
fs.writeFile("./利润表.xlsx", buffer, function(){
console.log("写好了");
}
)
3. 结果
![db1191f07a3d55d11d78e8a776820307.png](https://i-blog.csdnimg.cn/blog_migrate/de2657fc34faeebc5267a07bc8dd23ce.jpeg)