node.js编写程序化接口

认识node.js

 JavaScript作为一门编程语言的要素,包括基本类型和变量、函数和对象等,都与其他编程语言无异。

// JavaScript的最大缺陷在于它是专门为了在浏览器中运行而设计的,在设计之初没有考虑到和I/O设备交互的情形。

// 为了让JavaScript能够直接在本地机器上运行并利用所有资源,Node对JavaScript做了大量拓展。

// 包括模块系统、文件系统、流处理以及多进程支持。

使用node.js的过程

1.在代码文件夹中,【新建js文件】(不要新建成html),里面写任意js代码。

2.来到代码文件夹,在上面的路径处输入【cmd】,就弹出了小黑窗。 

 3.输入【node 文件名】,就能执行代码。

注意:

 node -v:查看node下载版本.

文件名太长,可以输入一半,按tab键补足.

按方向键↑,可以切换到上一条敲过的命令.

模块化的概念:

把一个大的程序拆分成相互依赖的n个小文件

这些小文件还可以通过特定的语法组合到一起

这个过程称之为模块化

优点:

避免命名冲突(减少命名空间污染)

更好的分离,按需加载

更高复用性

高可维护性

模块化的规范:

在require.js中,使用require.js提供的函数require()来应用一个模块

每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

在服务器端,模块的加载是运行时同步加载的。在浏览器端,模块需要提前编译打包处理。

 [特点]

所有的代码都运行在模块作用域,不会污染全局作用域。

模块可以多次加载,但是只会在第一次加载是运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。

模块加载的顺序,按照其在代码中出现的顺序。

[语法]

暴露模块

module exports = value  

 exports xxx = value

引入模块

 require(xxx)  

 在第三方模块中,xxx为模块名。在自定义模块中,xxx为模块文件路径。

// [内置模块fs]

// node提供了一个内置模块叫fs(filesystem),专门用来操作文件的。

// 可以读取一个文件的内容,也可以把内容写入到一个文件。


 

// 导入模块

require('模块名')

// const fs = require('fs') (一般会定义一个变量名接收)

// 读取文件

fs.readFile('文件的路径',(err,data) => {

    // 不管是读取成功,还是读取失败,都会调用这个回调函数。

    // 如果读取失败,err里就会有错误信息。

    // 如果读取成功,err为空,data里就会有读取的内容

})

// 写入文件

fs.writeFile('文件的路径',写入的内容,err =>{

    // 写入完成调用的回调函数。

    // 如果成功err就为空,如果失败err就有值。

})

// 追加文件内容

fs.appendFile('路径','要追加的内容',err => {

    if(!err){

        console.log('追加成功');

    }

})

// 拷贝文件

fs.copyFile('要拷貝的文件路徑','目標文件的路徑')

// 刪除文件

fs.unlink('文件路徑',err => {

    if(!err) {

        console.log('刪除成功');

    }

})

// 导入fs模块
const fs = require('fs')

// 封装添加狗狗的方法
function addDog(dog = '哈士奇') {
    
    // 先读取原本的内容
    fs.readFile(__dirname + '../data/dogs.json', (err, data) => {
    // fs.readFile('../data/dogs.json', (err, data) => {
    // fs.readFile('./data/dogs.json', (err, data) => {
        
        // 读取成功
        if (!err) {
            // console.log(data);

            // JSON通常用于与服务器交换数据。
            // 在接收服务器数据时一般是字符串。
            // 我们可以使用 JSON.parse() 方法将数据转换为JavaScript對象。
            // console.log( JSON.parse(data) );

            // 定义一个数组接收读取到的元素
            const arr = JSON.parse(data)

            // 向数组中增加元素
            arr.push(dog)

            // 向JSON文件写入数组元素
            // 在向服务器发送数据时一般是“字符串”。
            // 我们可以使用 JSON.stringify() 方法将JavaScript值轉化為JSON字符串。
            fs.writeFile(__dirname + '../data/dogs.json', JSON.stringify(arr), err => {
            // fs.writeFile('../data/dogs.json', JSON.stringify(arr), err => {
            // fs.writeFile('./data/dogs.json', JSON.stringify(arr), err => {
                if (!err) {
                    console.log('写入成功')
                } else {
                    console.log('写入失败')
                }
            })
        
        } else {
            
            // 读取失败
            console.log('读取失败')
        }
    })
}


// 封装的读取狗狗的方法
function readDog () {

    // 读取
    fs.readFile('../data/dogs.json',(err,data) => {
    // fs.readFile('./data/dogs.json',(err,data) => {

        // 如果每次就打印数组
        if(!err){
            console.log( JSON.parse(data) );
        }else {
            // 打印错误
            console.log(err);
        }
    })
}

addDog('比熊')

// 模块内容暴露
module.exports = {
    readDog,
    addDog
}

 

// 导入dog模块
const dog = require('./module/dog.js')

dog.addDog('阿拉斯加',function(){dog.addDog('666')})

dog.readDog()

 在小窗口执行node 加上该文件名,会在小窗口提示写入成功。

并在dogs.json文件夹中写入相应的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值