美文网首页node工作生活NodeJS
Node从零开始第一步:node的起步与模块开发

Node从零开始第一步:node的起步与模块开发

作者: 胡先森很忙 | 来源:发表于2019-07-04 16:48 被阅读0次
Node.js是什么?

首先呢,node.js并不是编程语言,也不是框架与库,它是一个javascript运行时环境,能解析与执行javascript代码,是构建于Chrome V8 Javascript引擎之上的,从技术角度,它的能力与Java,PHP,Python等服务端技术类似

Node的特点
  • 事件驱动
  • 非阻塞IO(异步)模型
  • 单线程
  • 跨平台
我为什么要学习node

从事前端开发有个几年了,一直想要自己开发维护一个网站,写接口成了大难题,采用node写接口的话,更适合于前端开发人员,node也能让自己对于Javascript的理解更深一层

起步

安装node环境的话,去NodeJS官网下载稳定版的就可以,整个安装的过程是一路点下去就行,安装完了确认下安装上了就可以开始我们的node之旅了
直接文件读取写入走起,感受下node的魅力

const fs = require('fs');
//读取文件
fs.readFile('./index.js', (err, data) => {
    if (err) throw err
    console.log(data)
})
const fs = require('fs');
//写入文件
fs.writeFile('./message.text','Hello World',err=>{
    if(err) throw err
    console.log('ok')
})

新建个js文件,然后命令行node启动这个文件即可

这里我们require的fs是什么呢,可能刚接触node的小伙伴并不知道,这里解释下,fs,是node的内置模块,也就是核心模块,node是模块化开发的,因为本身javascript是一直没有模块体系的(module),无法将一个大程序拆分成互相依赖的肖文杰,然后再用简洁的方法拼接起来,其他语言有这项功能,比如python的import,Ruby的require,css都有@import,但是node是多模块开发的

模块通信规则

require模块导入

// 核心模块
const fs = require('fs')

// 第三方模块
// npm install marked
const marked = require('marked')

// 用户模块(自己写的),正确的,正确的方式
// 注意:加载自己写的模块,相对路径不能省略 ./
const foo = require('./foo.js')

// 用户模块(自己写的),正确的(推荐),可以省略后缀名 .js
const foo = require('./foo')

exports模块导出

// 导出多个成员:写法一(麻烦,不推荐)
module.exports.a = 123
module.exports.b = 456
module.exports.c = 789


//Node 为了降低开发人员的痛苦,所以为 module.exports 提供了一个别名 exports (下面协大等价于上面的写法)。
//导出多个成员:写法二(推荐)
console.log(exports === module.exports) // => true
exports.a = 123
exports.b = 456
exports.c = 789
exports.fn = function () { 
}

上面是导出多个成员的例子,是可以省略module的,但是只导出一个成员的话,是不可以省略module的

// 导出单个成员:不可以省略module
module.exports = function (x, y) {
  return x + y
}

为什么不能省略module?因为每个模块内部有个module对象,module对象上有个成员exports也是一个对象,模块中同时还有一个成员exports等价于module.exports

模块分类
核心模块
  • 核心模块就是node内置的模块,需要通过唯一的标识名称来进行获取的
  • 每一个核心模块基本上都是暴露了一个对象,里面有一些方法供我们使用,具体的api可以去官网查找使用
  • 在导入核心模块的本质也是文件模块,已经被编译到了node的可执行程序中,基于CommonJS模块规范
  • 常用的核心模块名称与作用
模块名称 作用
fs 文件操作
http 网络操作
path 路径操作
url url地址操作
os 操作系统信息
net 一种更底层的网络操作方式
querystring 解析查询字符串
util 工具函数模块
文件模块

一般指用户自己编写的模块

第三方模块

一般通过npm安装的模块就是第三方模块

加载规则如下:

  • 如果不是文件模块,也不是核心模块
  • node 会去 node_modules 目录中找(找跟你引用的名称一样的目录),例如这里 require('underscore')
  • 如果在 node_modules 目录中找到 underscore 目录,则找该目录下的 package.json 文件
  • 如果找到 package.json 文件,则找该文件中的 main 属性,拿到 main 指定的入口模块
  • 如果过程都找不到,node 则取上一级目录下找 node_modules 目录,规则同上。。。
  • 如果一直找到代码文件的根路径还找不到,则报错。。。

注意:对于第三方模块,我们都是 npm install 命令进行下载的,就放到项目根目录下的 node_modules 目录。

基于node.js的服务端开发任重而道远,一步一个脚印,觉得有用的可以点个赞,感谢

相关文章

  • Node从零开始第一步:node的起步与模块开发

    Node.js是什么? 首先呢,node.js并不是编程语言,也不是框架与库,它是一个javascript运行时环...

  • 01-Node 基础使用

    Node 基础使用Node 介绍Node 模块化开发模块成员的导出模块成员的导入Node 系统模块 path 和 ...

  • 使用Node.js写一个简单的api接口

    引入Http模块 1、第一步安装Node.js 2、因为node内置了http模块,所以 var http=re...

  • Node.js 核心模块概述

    模块加载原理与加载方式 Node 中的模块:核心模块/原生模块:Node提供的模块。文件模块:用户编写的模块。 N...

  • Node.js的读书笔记

    书单阅读:《Node.js开发指南》《Node.js入门经典》《Node与Express开发》《Node即学即用....

  • node与npm常用命令

    node与npm常用命令: 使用淘宝镜象: 查看已安装node模块列表: 更新node模块: 快速启动一个服务: ...

  • Node模块化

    1.Node.js中模块化开发规范 Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量...

  • 无标题文章

    node模块与包管理 在Node中,使用的是Commonjs模块标准,commonjs模块系统是文件之间共享对象或...

  • Koa系列1:Koa中使用mysql模块操作数据库

    安装 node.js的mysql模块 1.模块介绍 mysql模块是node操作MySQL的引擎,可以在node....

  • 02 Node.js核心模块

    内容来自《Node.js开发指南》 核心模块是 Node.js 的心脏,它由一些精简而高效的库组成,为 Node....

网友评论

    本文标题:Node从零开始第一步:node的起步与模块开发

    本文链接:https://www.haomeiwen.com/subject/wyrlhctx.html