node学习笔记

node学习笔记

npm

1、npm安装

npm install 模块名
在代码中只要通过
var 模块名 = require(‘模块名’);
使用就行

2、全局安装与本地安装

npm install express # 本地安装
放在./node_modules下,可通过require来引入
npm install express -g # 全局安装
放在/usr/local或node的安装目录中

3、Package.json 属性说明

name - 包名。

version - 包的版本号。

description - 包的描述。

homepage - 包的官网 url 。

author - 包的作者姓名。

contributors - 包的其他贡献者姓名。

dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。

repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。

main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。

keywords - 关键字

4、卸载

npm uninstall 模块名

5、版本号

语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号

如果只是修复bug,需要更新Z位。
如果是新增了功能,但是向下兼容,需要更新Y位。
如果有大变动,向下不兼容,需要更新X位。

6、安装淘宝镜像cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org
安装命令使用cnpm 快一些

观察者模式待补充

事件驱动

// 引入 events 模块
var events = require(‘events’);

// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();

// 绑定事件及事件的处理程序
eventEmitter.on(‘eventName’, eventHandler);

// 触发事件
eventEmitter.emit(‘eventName’);

example:
// 使用匿名函数绑定 data_received 事件
eventEmitter.on(‘data_received’, function(){
console.log(‘数据接收成功。’);
});

EventEmitter类

-JavaScript 的对象机制是基于原型的,支持部分多重继承JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。

Buffer类

-JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。

const buf = Buffer.from(‘stirng’, ‘ascii’);

//转十六进制
console.log(buf.toString(‘hex’));

//写入 Node 缓冲区
buf.write(string[, offset[, length]][, encoding])
参数描述
string - 写入缓冲区的字符串。

offset - 缓冲区开始写入的索引值,默认为 0 。

length - 写入的字节数,默认为 buffer.length

encoding - 使用的编码。默认为 ‘utf8’ 。

转成JSON对象
-buf.toJSON()

缓冲区合并
-Buffer.concat(list[, totalLength])

缓冲区比较
-buf.compare(otherBuffer);

缓冲区裁剪
-buf.slice([start[, end]])

缓冲区长度
-buf.length;

Stream接口

分类

Readable - 可读操作。

Writable - 可写操作。

Duplex - 可读可写操作.

Transform - 操作被写入数据,然后读出结果。

读写流

var fs = require(“fs”);

// 创建一个可读流
var readerStream = fs.createReadStream(‘input.txt’);

// 创建一个可写流
var writerStream = fs.createWriteStream(‘output.txt’);

// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);

模版系统

Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。

封装一个对象到模块中
module.exports = function() {
// …
}

加载顺序

从文件模块缓存中加载->从原生模块加载->从文件加载

函数

node.js中可以把函数作为一个参数

function execute(someFunction, value) {
someFunction(value);
}

execute(function(word){ console.log(word) }, “Hello”);

全局对象与全局变量

1、__filename
2、__dirname
3、setTimeout(cb,ms)
4、clearTimeout(t)
5、setInterval(cb,ms)
6、console
7、process

Util

util 是一个Node.js 核心模块,提供常用函数的集合
const util = require(‘util’);

文件系统

-打开文件
fs.open(path, flags[, mode], callback)

-获取文件
fs.stat(path, callback)

-读取文件
fs.read(fd, buffer, offset, length, position, callback)

-写入文件
fs.writeFile(file, data[, options], callback)

-关闭文件
fs.close(fd, callback)

获取URL参数

// 解析 url 参数
var params = url.parse(req.url, true).query;

Express框架

1、安装

cnpm install express --save

2、请求和响应

Express 应用使用回调函数的参数: request 和 response 对象来处理请求和响应的数据。

Request对象

-req.app
-req.baseUrl
-req.hostname
-req.params
-req.path
-req.query
-req.route
-req.get()

Response对象

-res.app
-res.append()
-res.cookie(name, value[, option])
-res.get()
-res.json()
-res.send()
-res.status()

3、路由

var express = require(‘express’);
var app = express();

// GET 请求
app.get(’/’, function (req, res) {
console.log(“主页 GET 请求”);
res.send(‘Hello GET’);
})

// POST 请求
app.post(’/’, function (req, res) {
console.log(“主页 POST 请求”);
res.send(‘Hello POST’);
})

HTTP 方法

以下为 REST 基本架构的四个方法:
GET - 用于获取数据。

PUT - 用于更新或添加数据。

DELETE - 用于删除数据。

POST - 用于添加数据。

连接MySql

var mysql = require(‘mysql’);

var connection = mysql.createConnection({
host : ‘localhost’,
user : ‘root’,
password : ‘123456’,
port: ‘3306’,
database: ‘test’
});

connection.connect();

数据库操作CURD

var sql = ‘SELECT * FROM websites’;
//查
connection.query(sql,function (err, result) {
if(err){
console.log(’[SELECT ERROR] - ',err.message);
return;
}
});

connection.end();

增删改查相似,在sql处填写sql的具体语句传入MySql数据库

Promise对象待补充

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值