Node.js

Posted api9527

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js相关的知识,希望对你有一定的参考价值。

官网 https://nodejs.org/en/

  • 用处
    • 开发网站后台
    • 开发本地工具、应用
  • 特点
    • 事件驱动、非阻塞式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的主要内容,如果未能解决你的问题,请参考以下文章

vscode代码片段建议bug

从Node.js Stream写入多个文件

Node.js与HTTP响应主体的unicode问题

节点 JS 不提供静态图像

你可能不知道的JavaScript代码片段和技巧(下)

你可能不知道的JavaScript代码片段和技巧(上)