Node.js零基础小白入门(一)

440 阅读4分钟

Node.js

刚开始学node是想学学怎么写接口的,看了很多个视频发现大多数将node的课程前面都有一部分都是在讲模块化,那就先学学模块化的知识吧~

Node.js是一个能够在服务器段运行JavaScript的开放源代码、跨平台JavaScript运行环境推荐学习文档

系统模块

1. 文件的读取(File System)

读取文件的内容,当err为空即读取文件成功,返回的就是所读取文件ajax.js中的内容。

// fs.readFile('文件路径/文件名称', '文件编码', callback)
const fs = require('fs');
​
fs.readFile('./ajax.js', 'utf-8', (err, content) => {
    if(err == null){
          console.log(content);
    }
})

2. 文件的写入

写入文件内容,下面这段代码中,const fs = require('fs');这句语句引入了fs模块,fs暴露了和文件操作相关的一些API。会将hello字段写入相对应的demo.txt文件中,如果没有这个文件的话,会自动创建出这个文件并将hello写入。当err不为空的时候说明写入失败。

const fs = require('fs');
​
fs.writeFile('demo.txt', 'hello', (err) => {
    if (err != null) {
        console.log(err);
        return;
    } 
    console.log('success');
})

3.系统模块path路径操作

不同操作系统的路径分隔符不统一,Windows中是/或``;Linux是/

路径拼接语法

// path.join('路径', '路径', ...)
const path = require('path');
let finalPath = path.join('Mannqo', 'front', 'end', 'm/css');
console.log(finalPath);  // Mannqo\front\end\m\css;
  • 在大多数情况下使用的是绝对路径

  • 在读取文件或者设置文件路径时都会选择绝对路径(尤其是在当前目录不是当前的工作目录的时候)

  • 使用__dirname获取当前文件所在的绝对路径

    fs.readFile(path.join(__dirname, 'demo.js'), 'utf8', (err, content){
                console.log(content);
    })
    

第三方模块(包)

具有特定功能,可以给我们直接使用的模块就是第三方模块。由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名为

两种存在形式

  • js文件的形式存在,提供实现项目具体功能的API接口
  • 以命令行工具形式存在,辅助项目开发

npmjs.com: 第三方模块的存储和分发仓库。其实就是我们平时通过npm去下载的模块,在node被安装好的时候我们就可以通过npm去下载我们需要的模块,且在下载的时候要联网,我们通过npm所下载的模块就会默认被放在node_modules这个包里面。如果要全局安装的发就在后面加-g即可。

  • 下载:npm install 模块名称
  • 卸载:npm uninstall package 模块名称

第三方模块nodemon

监控文件的保存操作,当文件发生保存操作的时候就会自动重新执行该文件,这样就不需要再命令行工具中再次执行该文件了。用npm install nodemon -g全局下载它。只要没有出现红色的err说明已经下载成功了。然后在终端运行的时候把之前的node改成nodemon即可。

在这里我遇到了一个问题,在使用nodemon的时候报错:无法加载文件,因为在系统上禁止运行脚本。通过在终端输入下面这2段代码即可解决。

get-ExecutionPolicy
set-ExecutionPolicy RemoteSigned

模块查找规则

A. 查找路径(有路径当时没有后缀)

require('./find');
  1. require方法根据模块路径查找模块,如果是完整路径的话就直接引入模块
  2. 如果模块后缀省略,先找同名JS文件再找同名JS文件夹(再找文件夹中的JS文件)
  3. 如果文件夹中没有index.js文件,就会去当前文件夹中的package.js文件中查找main(默认里面有index.js)选项中的入口文件
  4. 如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到

B. 查找文件名(模块只写文件名时,即没有路径也没有后缀的时候)

require('find');
  1. Node.js会假设它时系统模块,去node_modules文件夹中找
  2. 先看时候有该名字的js文件,再看是否有该名字的文件夹
  3. 如果是文件夹就看里面有没有index.js文件
  4. 如果还是没有,就查看该文件夹中package.json中的main选项确定模块入口文件。没有就报错。

在学习Node的时候看了很多个视频,目前就学习了一些Node模块的知识,孩子接下来会好好学服务器的知识的orz