Node.js
Posted api9527
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js相关的知识,希望对你有一定的参考价值。
- 用处
- 开发网站后台
- 开发本地工具、应用
- 特点
- 事件驱动、非阻塞式IO的模型
- 强大的生态npm
- 对于特点的个人理解
- 生活例子,银行办理业务
- 1V1 VIP服务 与 取号等待叫号
- 涉及的概念
- 计算密集型(VIP服务):大量的计算、消耗CPU资源(算圆周率,视频高清解码);
- IO密集型(取号等待叫号):网络磁盘读写、Node.js;
- 安装:
- 到官网安装;
- git bash 输入
node -v
查看是否装了node.js;
范例1 使用内置模块
const fs = require(‘fs‘) //加载内置的模块
fs.readFile(‘./a.md‘,‘utf-8‘,(err,text)=>{
if(err){
console.log(err)
return
}
text = text.toUpperCase()
fs.writeFile(‘./a-after.md‘,text,err=>{
if(err){
console.log(err)
return
}
console.log(‘写入完成‘)
})
console.log(text)
})
a.md :
hello world
范例2 使用本地模块
//调用
const util = require(‘./util.js‘)
// let result = util.sum(1,2,3)
console.log(util.sum(1,2,3))
console.log(util.sum(2,3,4))
console.log(util.sum(3,4,5))
[util.js]
function sum(){
return [...arguments].reduce((v1,v2)=> v1 + v2)
}
module.exports.sum = sum
范例3 使用第三方模块
npm install marked
[example3.js]
const MarkdownIt = require(‘markdown-it‘)//Call modules
const fs = require(‘fs‘)//Call modules
md = new MarkdownIt()
fs.readFile(‘./a.md‘,‘utf-8‘,(err,text)=>{
if(err) throw err
let html = md.render(text)
fs.writeFile(‘./a.html‘,html,err=>{
if(err) throw err
console.log(‘conversion to complete‘)
})
})
[git bash]
//检查npm
npm --version
//安装模块
npm install markdown-it
Common JS 规范
- 一个文件是一个模块
- 变量、函数、类都是私有的
- 每个模块内部,module代表当前模块
- module.exports 是对外的接口。加载某个模块,其实是加载该模块的 module.exports
- 注意 module.exports与直接使用exports的差异
- require方法用于加载模块
- 注意加载的模块路径写法差异
范例4 导出与引用
[a.js]
let num = 1
const add = ()=> ++num
module.exports.num = num //导出
module.exports.add = add
[b.js]
let obj = require(‘./a.js‘)//实际得到的是module.exports对象
console.log(obj.num)//引用
console.log(obj.add())
console.log(obj.add())
范例5 exports与module.exports的区别
[a.js]
//exports = module.exports 默认会有的
function sum(){
return [...arguments].reduce((v1,v2)=> v1+ v2)
}
//exports = sum 错误
//exports.sum = sum ok
module.exports = sum
[b.js]
const sum = require(‘./a.js‘)
console.log(sum(3,4))
console.log(sum(3,4,5))
NPM
以上是关于Node.js的主要内容,如果未能解决你的问题,请参考以下文章